diff options
author | Jakub Jelinek <jakub@redhat.com> | 2000-03-06 18:55:17 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2000-03-06 18:55:17 +0100 |
commit | c137830fba1ab6f1ae91ad5aec71573af7023c9d (patch) | |
tree | a743c5645689ac515047d5c883a5c9965eb3d432 | |
parent | 133a40d2476dd872623a89bf2b4db56d31ea3497 (diff) | |
download | gcc-c137830fba1ab6f1ae91ad5aec71573af7023c9d.zip gcc-c137830fba1ab6f1ae91ad5aec71573af7023c9d.tar.gz gcc-c137830fba1ab6f1ae91ad5aec71573af7023c9d.tar.bz2 |
sparc.c (eligible_for_epilogue_delay): Accept floating point instructions for epilogue delay.
* config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
floating point instructions for epilogue delay.
From-SVN: r32362
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8a98ec8..4cffd3b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-03-06 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept + floating point instructions for epilogue delay. + 2000-03-06 Mark Mitchell <mark@codesourcery.com> * function.c (free_temps_for_rtl_expr): Don't free slots diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 4045db2..d6dbb97 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -2394,10 +2394,20 @@ eligible_for_epilogue_delay (trial, slot) /* Otherwise, only operations which can be done in tandem with a `restore' or `return' insn can go into the delay slot. */ if (GET_CODE (SET_DEST (pat)) != REG - || REGNO (SET_DEST (pat)) >= 32 || REGNO (SET_DEST (pat)) < 24) return 0; + /* If this instruction sets up floating point register and we have a return + instruction, it can probably go in. But restore will not work + with FP_REGS. */ + if (REGNO (SET_DEST (pat)) >= 32) + { + if (TARGET_V9 && ! epilogue_renumber (&pat, 1) + && (get_attr_in_uncond_branch_delay (trial) == IN_BRANCH_DELAY_TRUE)) + return 1; + return 0; + } + /* The set of insns matched here must agree precisely with the set of patterns paired with a RETURN in sparc.md. */ |