summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-20 21:32:43 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-20 21:32:43 -0800
commitc9378dc2fe8e3097fee0100f2b07c2a1195dc8a0 (patch)
tree2e528788a3943f903a255aee5c9fdbd2849dc150 /gcc/emit-rtl.c
parent58c860d6c48324eba66dd19540db5584d832cf58 (diff)
fix more 64-bit float bugs
Diffstat (limited to 'gcc/emit-rtl.c')
-rwxr-xr-xgcc/emit-rtl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 37c8a5b..7d28df0 100755
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3338,7 +3338,9 @@ init_emit_once (line_numbers)
zero_memory ((char *) &u, sizeof u); /* Zero any holes in a structure. */
u.d = i == 0 ? dconst0 : i == 1 ? dconst1 : dconst2;
- copy_memory ((char *) &u, (char *) &CONST_DOUBLE_LOW (tem), sizeof u);
+ for (int j = 0; j < sizeof (REAL_VALUE_TYPE) / sizeof (HOST_WIDE_INT); j++)
+ XWINT(tem, 2 + j) = u.i[j];
+
CONST_DOUBLE_MEM (tem) = cc0_rtx;
PUT_MODE (tem, mode);