pa.c (emit_move_sequence): Force problematical constants into memory during the reload pass when...

* pa.c (emit_move_sequence): Force problematical constants
	into memory during the reload pass when generating PIC.

From-SVN: r9581
This commit is contained in:
Jeff Law 1995-05-05 12:55:27 -06:00
parent ddcf4abcac
commit bc4a9f172b
1 changed files with 15 additions and 0 deletions

View File

@ -976,6 +976,21 @@ emit_move_sequence (operands, mode, scratch_reg)
operands[1] = force_const_mem (mode, operand1);
emit_move_sequence (operands, mode, temp);
}
/* Likewise for (const (plus (symbol) (const_int)) when generating
pic code during or after reload and const_int will not fit
in 14 bits. */
else if (GET_CODE (operand1) == CONST
&& GET_CODE (XEXP (operand1, 0)) == PLUS
&& GET_CODE (XEXP (XEXP (operand1, 0), 1)) == CONST_INT
&& !INT_14_BITS (XEXP (XEXP (operand1, 0), 1))
&& (reload_completed || reload_in_progress)
&& flag_pic)
{
operands[1] = force_const_mem (mode, operand1);
operands[1] = legitimize_pic_address (XEXP (operands[1], 0),
mode, temp);
emit_move_sequence (operands, mode, temp);
}
else
{
operands[1] = legitimize_pic_address (operand1, mode, temp);