aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-04-01 08:03:10 +0000
committerRichard Stallman <rms@gnu.org>1992-04-01 08:03:10 +0000
commit2fe02d7ee9500bb634b4cf8170cd13594c96f28e (patch)
treef51624589d241182dbe1536a1da330a2b3afe41f
parent1fab8e81071db8ea8dfe62de8a6d79efd9dc4646 (diff)
downloadgcc-2fe02d7ee9500bb634b4cf8170cd13594c96f28e.zip
gcc-2fe02d7ee9500bb634b4cf8170cd13594c96f28e.tar.gz
gcc-2fe02d7ee9500bb634b4cf8170cd13594c96f28e.tar.bz2
*** empty log message ***
From-SVN: r657
-rw-r--r--gcc/emit-rtl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 6a9d6d5..82160f5 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -696,7 +696,15 @@ operand_subword (op, i, validate_address, mode)
&& GET_MODE_SIZE (mode) == 2 * UNITS_PER_WORD
&& GET_CODE (op) == CONST_DOUBLE)
return gen_rtx (CONST_INT, VOIDmode,
- i ? CONST_DOUBLE_HIGH (op) : CONST_DOUBLE_LOW (op));
+ i ^ (WORDS_BIG_ENDIAN !=
+/* The constant is stored in the host's word-ordering,
+ but we want to access it in the target's word-ordering. */
+#ifdef HOST_WORDS_BIG_ENDIAN
+ 1
+#else
+ 0
+#endif
+ ) ? CONST_DOUBLE_HIGH (op) : CONST_DOUBLE_LOW (op));
/* Single word float is a little harder, since single- and double-word
values often do not have the same high-order bits. We have already