]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>
Fri, 31 May 2002 20:54:27 +0000 (20:54 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 31 May 2002 20:54:27 +0000 (20:54 +0000)
* pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
(output_call): Likewise.

From-SVN: r54120

gcc/ChangeLog
gcc/config/pa/pa.c

index 048f65e266a329910dc6ce5aca24552be2d62e27..da2b59411cc6e5ccec5188ac4cc4cc0b9f33b02d 100644 (file)
@@ -1,3 +1,8 @@
+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-30  Richard Henderson  <rth@redhat.com>
            Eric Botcazou  <ebotcazou@multimania.com>
 
index 4186cbd324f85756162f45cfa38ad99ac5e919a9..3d98898a2a8f1d6200319467e3f04fd9da544c30 100644 (file)
@@ -5921,7 +5921,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);
        }
 
@@ -6166,8 +6169,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)
                {