diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-08-18 00:45:41 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-08-18 00:45:41 -0600 |
commit | ba365a1952a253b9dca064c5af1ece63aebac95e (patch) | |
tree | 8b5b7b70631dabaf5924116bcd9566bbe18f6107 /gcc | |
parent | 6641552950fb9953d2d2032beb7c42b0414d5b1d (diff) | |
download | gcc-ba365a1952a253b9dca064c5af1ece63aebac95e.zip gcc-ba365a1952a253b9dca064c5af1ece63aebac95e.tar.gz gcc-ba365a1952a253b9dca064c5af1ece63aebac95e.tar.bz2 |
pa.c (emit_move_sequence): Always handle secondary reloads for symbolic addresses.
* pa.c (emit_move_sequence): Always handle secondary reloads for
symbolic addresses.
(secondary_reload_class): Symbolic operands always need a secondary
reload from R1_REGS if their target class is not R1_REGS.
From-SVN: r5178
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index c4585fc..691253c 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -852,8 +852,7 @@ emit_move_sequence (operands, mode, scratch_reg) /* Simplify the source if we need to. */ if (GET_CODE (operand1) != HIGH && immediate_operand (operand1, mode) || (GET_CODE (operand1) == HIGH - && symbolic_operand (XEXP (operand1, 0), mode) - && TARGET_KERNEL)) + && symbolic_operand (XEXP (operand1, 0), mode))) { int ishighonly = 0; @@ -3241,7 +3240,7 @@ secondary_reload_class (class, mode, in) if (GET_CODE (in) == HIGH) in = XEXP (in, 0); - if (TARGET_KERNEL && class != R1_REGS && symbolic_operand (in, VOIDmode)) + if (class != R1_REGS && symbolic_operand (in, VOIDmode)) return R1_REGS; return NO_REGS; |