diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-11-21 19:40:36 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-11-21 19:40:36 +0000 |
commit | de8de62624c8a1063a0e6b13238cb1eb9701b8d2 (patch) | |
tree | 12afdae3a0cc838911eee766d0c0e1524925585f /gcc/emit-rtl.c | |
parent | 2e1083c8da5b82a183f0fae033d5039c2cbb1af5 (diff) | |
download | ppe42-gcc-de8de62624c8a1063a0e6b13238cb1eb9701b8d2.tar.gz ppe42-gcc-de8de62624c8a1063a0e6b13238cb1eb9701b8d2.zip |
(operand_subword): For CONST_DOUBLE, add case to
handle BITS_PER_WORD of 16.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8541 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 615aeb18ecc..cfd0d249f0a 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1105,6 +1105,15 @@ operand_subword (op, i, validate_address, mode) return GEN_INT ((((HOST_WIDE_INT) k[! WORDS_BIG_ENDIAN]) << 32) | (HOST_WIDE_INT) k[WORDS_BIG_ENDIAN]); #endif + else if (BITS_PER_WORD == 16) + { + long value; + value = k[i >> 1]; + if ((i & 0x1) == 0) + value >>= 16; + value &= 0xffff; + return GEN_INT ((HOST_WIDE_INT) value); + } else abort (); } |