aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1992-10-16 00:23:57 -0600
committerJeff Law <law@gcc.gnu.org>1992-10-16 00:23:57 -0600
commit5cf2759eb4fb4b682a56182ee4a0e1a14e792333 (patch)
treef93aa94b669a5e8ec47074120422d03bc4adb9c5
parentea727bbf208db48adbb0f31bb98394a7815e17e6 (diff)
downloadgcc-5cf2759eb4fb4b682a56182ee4a0e1a14e792333.zip
gcc-5cf2759eb4fb4b682a56182ee4a0e1a14e792333.tar.gz
gcc-5cf2759eb4fb4b682a56182ee4a0e1a14e792333.tar.bz2
pa.md (call define_expands): If TARGET_LONG_CALLS, then force the address of the function into a register.
* pa.md (call define_expands): If TARGET_LONG_CALLS, then force the address of the function into a register. From-SVN: r2486
-rw-r--r--gcc/config/pa/pa.md12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 7cdbcf1..c870e50 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -2333,7 +2333,11 @@
""
"
{
- operands[0] = gen_rtx (MEM, SImode, XEXP (operands[0], 0));
+ if (TARGET_LONG_CALLS)
+ operands[0] = gen_rtx (MEM, SImode,
+ force_reg (SImode, XEXP (operands[0], 0)));
+ else
+ operands[0] = gen_rtx (MEM, SImode, XEXP (operands[0], 0));
}")
(define_insn ""
@@ -2365,7 +2369,11 @@
""
"
{
- operands[1] = gen_rtx (MEM, SImode, XEXP (operands[1], 0));
+ if (TARGET_LONG_CALLS)
+ operands[1] = gen_rtx (MEM, SImode,
+ force_reg (SImode, XEXP (operands[1], 0)));
+ else
+ operands[1] = gen_rtx (MEM, SImode, XEXP (operands[1], 0));
}")
(define_insn ""