aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-08-18 00:45:41 -0600
committerJeff Law <law@gcc.gnu.org>1993-08-18 00:45:41 -0600
commitba365a1952a253b9dca064c5af1ece63aebac95e (patch)
tree8b5b7b70631dabaf5924116bcd9566bbe18f6107 /gcc
parent6641552950fb9953d2d2032beb7c42b0414d5b1d (diff)
downloadgcc-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.c5
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;