diff options
author | Charles Hannum <mycroft@gnu.org> | 1992-07-07 02:14:24 +0000 |
---|---|---|
committer | Charles Hannum <mycroft@gnu.org> | 1992-07-07 02:14:24 +0000 |
commit | 7529ac93b8c05abf91c607f259d5d5c4907cc6d4 (patch) | |
tree | 440caa60c123066e2caddabf2e315c5ffd336134 /gcc/emit-rtl.c | |
parent | 592252adb8d84c69f69c7003913dcd02359b06c3 (diff) | |
download | gcc-7529ac93b8c05abf91c607f259d5d5c4907cc6d4.zip gcc-7529ac93b8c05abf91c607f259d5d5c4907cc6d4.tar.gz gcc-7529ac93b8c05abf91c607f259d5d5c4907cc6d4.tar.bz2 |
entered into RCS
From-SVN: r1496
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 8af05c5..250eb81 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -804,15 +804,19 @@ operand_subword (op, i, validate_address, mode) && GET_MODE_CLASS (mode) == MODE_FLOAT && GET_MODE_SIZE (mode) == 2 * UNITS_PER_WORD && GET_CODE (op) == CONST_DOUBLE) - return GEN_INT (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. */ + { + /* The constant is stored in the host's word-ordering, + but we want to access it in the target's word-ordering. Some + compilers don't like a conditional inside macro args, so we have two + copies of the return. */ #ifdef HOST_WORDS_BIG_ENDIAN - 1 + return GEN_INT (i == WORDS_BIG_ENDIAN + ? CONST_DOUBLE_HIGH (op) : CONST_DOUBLE_LOW (op)); #else - 0 + return GEN_INT (i != WORDS_BIG_ENDIAN + ? CONST_DOUBLE_HIGH (op) : CONST_DOUBLE_LOW (op)); #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 |