aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-08-24 18:36:11 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-08-24 18:36:11 -0400
commit53322b0c5f123b4c8023ad63d22246f60acebf8d (patch)
treeea74e17f04ef78f79788ccd8ea1276883176d573 /gcc
parent9bf99417c673a501f79357227ab12e59037dbb6d (diff)
downloadgcc-53322b0c5f123b4c8023ad63d22246f60acebf8d.zip
gcc-53322b0c5f123b4c8023ad63d22246f60acebf8d.tar.gz
gcc-53322b0c5f123b4c8023ad63d22246f60acebf8d.tar.bz2
(output_{pro,epi}log): Don't need no-ops after calls to functions to
save and restore FP regs. From-SVN: r5211
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 4eb685d..6295b10 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1332,15 +1332,14 @@ output_prolog (file, size)
fprintf (file, "\tmfcr 12\n");
/* Do any required saving of fpr's. If only one or two to save, do it
- ourself. Otherwise, call function. */
+ ourself. Otherwise, call function. Note that since they are statically
+ linked, we do not need a nop following them. */
if (first_fp_reg == 62)
fprintf (file, "\tstfd 30,-16(1)\n\tstfd 31,-8(1)\n");
else if (first_fp_reg == 63)
fprintf (file, "\tstfd 31,-8(1)\n");
else if (first_fp_reg != 64)
- fprintf (file, "\tbl ._savef%d\n\tcror %d,%d,%d\n", first_fp_reg - 32,
- RS6000_CROR_BIT_NUMBER, RS6000_CROR_BIT_NUMBER,
- RS6000_CROR_BIT_NUMBER);
+ fprintf (file, "\tbl ._savef%d\n", first_fp_reg - 32);
/* Now save gpr's. */
if (first_reg == 31)
@@ -1443,9 +1442,7 @@ output_epilog (file, size)
/* If we have to restore more than two FP registers, branch to the
restore function. It will return to our caller. */
if (first_fp_reg < 62)
- fprintf (file, "\tb ._restf%d\n\tcror %d,%d,%d\n", first_fp_reg - 32,
- RS6000_CROR_BIT_NUMBER, RS6000_CROR_BIT_NUMBER,
- RS6000_CROR_BIT_NUMBER);
+ fprintf (file, "\tb ._restf%d\n", first_fp_reg - 32);
else
fprintf (file, "\tbr\n");
}