aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>2002-05-31 05:41:30 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2002-05-31 05:41:30 +0000
commit6248c4ddc8095dfefd8c8a37fbc625a80d4e0456 (patch)
treede805468c82f6e0b8aa44c11ad148f1de1b50023
parentd499455b8135f16d463dc06f0a89019e78b4123b (diff)
downloadgcc-6248c4ddc8095dfefd8c8a37fbc625a80d4e0456.zip
gcc-6248c4ddc8095dfefd8c8a37fbc625a80d4e0456.tar.gz
gcc-6248c4ddc8095dfefd8c8a37fbc625a80d4e0456.tar.bz2
pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
* pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20. (output_call): Likewise. From-SVN: r54088
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.c12
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9c03b7a..90bbe7e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
+ * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
+ (output_call): Likewise.
+
+2002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
* pa.c: Move output.h include after tree.h include.
(pa_asm_output_mi_thunk): Constify identifier lab.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index e493d6f..4ace172 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -6099,7 +6099,10 @@ output_millicode_call (insn, call_dest)
{
xoperands[0] = call_dest;
output_asm_insn ("ldil L%%%0,%3", xoperands);
- output_asm_insn ("{ble|be,l} R%%%0(%%sr4,%3)", xoperands);
+ if (TARGET_PA_20)
+ output_asm_insn ("be,l R%%%0(%%sr4,%3),%sr0,%r31", xoperands);
+ else
+ output_asm_insn ("ble R%%%0(%%sr4,%3)", xoperands);
output_asm_insn ("nop", xoperands);
}
@@ -6355,8 +6358,11 @@ output_call (insn, call_dest, sibcall)
/* Get the high part of the address of $dyncall into %r2, then
add in the low part in the branch instruction. */
output_asm_insn ("ldil L%%$$dyncall,%%r2", xoperands);
- output_asm_insn ("{ble|be,l} R%%$$dyncall(%%sr4,%%r2)",
- xoperands);
+ if (TARGET_PA_20)
+ output_asm_insn ("be,l R%%$$dyncall(%%sr4,%%r2),%sr0,%r31",
+ xoperands);
+ else
+ output_asm_insn ("ble R%%$$dyncall(%%sr4,%%r2)", xoperands);
if (sibcall)
{