aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1994-10-14 17:27:02 -0600
committerJeff Law <law@gcc.gnu.org>1994-10-14 17:27:02 -0600
commit2c51d187e0eef70f5960e398594d48dd5f146a7a (patch)
treeb197919c86d29c11d5c57983e03eed2bd4e83457 /gcc
parent7a0934e7eb9dd2034fb0c2eacde7f249e577adc3 (diff)
downloadgcc-2c51d187e0eef70f5960e398594d48dd5f146a7a.zip
gcc-2c51d187e0eef70f5960e398594d48dd5f146a7a.tar.gz
gcc-2c51d187e0eef70f5960e398594d48dd5f146a7a.tar.bz2
pa.c (emit_move_sequence): Handle secondary reload when loading a constant into SAR.
* pa.c (emit_move_sequence): Handle secondary reload when loading a constant into SAR. From-SVN: r8272
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 0e74080..e085c87 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -832,10 +832,11 @@ emit_move_sequence (operands, mode, scratch_reg)
return 1;
}
/* Handle secondary reloads for SAR. These occur when trying to load
- the SAR from memory or from a FP register. */
+ the SAR from memory a FP register, or with a constant. */
else if (GET_CODE (operand0) == REG
&& REGNO_REG_CLASS (REGNO (operand0)) == SHIFT_REGS
&& (GET_CODE (operand1) == MEM
+ || GET_CODE (operand1) == CONST_INT
|| (GET_CODE (operand1) == REG
&& FP_REG_CLASS_P (REGNO_REG_CLASS (REGNO (operand1)))))
&& scratch_reg)