Fix problem with cross compiles on LP64 platforms. When splitting a DI
only compare against HOST_BITS_PER_WIDE_INT if TARGET_64BIT is true. Otherwise, compare against 32 (as would happen on a IPL32 platform).
This commit is contained in:
parent
4a7a5c53dd
commit
b23fae2957
3
gnu/dist/gcc4/gcc/config/pa/pa.c
vendored
3
gnu/dist/gcc4/gcc/config/pa/pa.c
vendored
@ -1879,7 +1879,8 @@ emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
|
||||
because PLUS uses an 11-bit immediate and the insn sequence
|
||||
generated is not as efficient as the one using HIGH/LO_SUM. */
|
||||
if (GET_CODE (operand1) == CONST_INT
|
||||
&& GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
|
||||
&& GET_MODE_BITSIZE (mode) <=
|
||||
(TARGET_64BIT ? HOST_BITS_PER_WIDE_INT : 32)
|
||||
&& !insert)
|
||||
{
|
||||
/* Directly break constant into high and low parts. This
|
||||
|
Loading…
Reference in New Issue
Block a user