aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1994-11-21 11:40:36 -0800
committerJim Wilson <wilson@gcc.gnu.org>1994-11-21 11:40:36 -0800
commit47b34d40242b4606a0451ac03ef53ba60bae1cd2 (patch)
tree12afdae3a0cc838911eee766d0c0e1524925585f
parentf4d9a3fb2bd70a707c273b556ac50bb1c9cea36f (diff)
downloadgcc-47b34d40242b4606a0451ac03ef53ba60bae1cd2.zip
gcc-47b34d40242b4606a0451ac03ef53ba60bae1cd2.tar.gz
gcc-47b34d40242b4606a0451ac03ef53ba60bae1cd2.tar.bz2
(operand_subword): For CONST_DOUBLE, add case to
handle BITS_PER_WORD of 16. From-SVN: r8541
-rw-r--r--gcc/emit-rtl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 615aeb1..cfd0d24 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 ();
}