diff options
Diffstat (limited to 'gcc/thumb.md')
-rwxr-xr-x | gcc/thumb.md | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/thumb.md b/gcc/thumb.md index 8cebc50..f78624f 100755 --- a/gcc/thumb.md +++ b/gcc/thumb.md @@ -1085,8 +1085,10 @@ { case MODE_FLOAT: { + int i; union real_extract u; - memcpy((char *)&u, (char *)&CONST_DOUBLE_LOW(operands[0]), sizeof u); + for (i = 0; i < sizeof (REAL_VALUE_TYPE) / sizeof (HOST_WIDE_INT); i++) + u.i[i] = XWINT(operands[0], 2 + i); assemble_real (u.d, GET_MODE (operands[0])); break; } @@ -1107,8 +1109,10 @@ { case MODE_FLOAT: { + int i; union real_extract u; - memcpy((char *)&u, (char *)&CONST_DOUBLE_LOW(operands[0]), sizeof u); + for (i = 0; i < sizeof (REAL_VALUE_TYPE) / sizeof (HOST_WIDE_INT); i++) + u.i[i] = XWINT(operands[0], 2 + i); assemble_real (u.d, GET_MODE (operands[0])); break; } |