aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gnu.org>1994-05-28 10:25:01 +0000
committerTorbjorn Granlund <tege@gnu.org>1994-05-28 10:25:01 +0000
commit7d558bfe5f65554ad87d913129c8d3989f1d117d (patch)
treeefd0d7567f780122b9b8e71b2df5bca36e7ba9a8
parent7f21d440de1553836ad853bdd338fa45caafaf00 (diff)
downloadgcc-7d558bfe5f65554ad87d913129c8d3989f1d117d.zip
gcc-7d558bfe5f65554ad87d913129c8d3989f1d117d.tar.gz
gcc-7d558bfe5f65554ad87d913129c8d3989f1d117d.tar.bz2
(call): Force address into register in non-symbol case.
(call_value): Likewise. From-SVN: r7380
-rw-r--r--gcc/config/pa/pa.md7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 8d8c236..96dd1bb 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -3025,7 +3025,8 @@
if (GET_CODE (op) == SYMBOL_REF)
emit_call_insn (gen_call_internal_symref (op, operands[1]));
else
- emit_call_insn (gen_call_internal_reg (op, operands[1]));
+ emit_call_insn (gen_call_internal_reg (force_reg (SImode, op),
+ operands[1]));
if (flag_pic)
{
@@ -3091,7 +3092,9 @@
emit_call_insn (gen_call_value_internal_symref (operands[0], op,
operands[2]));
else
- emit_call_insn (gen_call_value_internal_reg (operands[0], op, operands[2]));
+ emit_call_insn (gen_call_value_internal_reg (operands[0],
+ force_reg (SImode, op),
+ operands[2]));
if (flag_pic)
{