* emit-rtl.c (operand_subword): Correctly handle extracting a word
from a CONST_DOUBLE for 16bit targets with !WORDS_BIG_ENDIAN.
From-SVN: r17276
Thu Jan 1 10:49:12 1998 Jeffrey A Law (law@cygnus.com)
+ * emit-rtl.c (operand_subword): Correctly handle extracting a word
+ from a CONST_DOUBLE for 16bit targets with !WORDS_BIG_ENDIAN.
+
* mn10200.md (tstxx, cmpxx): Use "nonimmediate_operand" as predicate
for first argument.
{
long value;
value = k[i >> 1];
- if ((i & 0x1) == 0)
+ if ((i & 0x1) == !WORDS_BIG_ENDIAN)
value >>= 16;
value &= 0xffff;
return GEN_INT ((HOST_WIDE_INT) value);
REAL_VALUE_FROM_CONST_DOUBLE (rv, op);
REAL_VALUE_TO_TARGET_SINGLE (rv, l);
+
+ if (BITS_PER_WORD == 16)
+ {
+ if ((i & 0x1) == !WORDS_BIG_ENDIAN)
+ l >>= 16;
+ l &= 0xffff;
+ }
return GEN_INT ((HOST_WIDE_INT) l);
}
#else