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
This commit is contained in:
parent
133a40d247
commit
c137830fba
|
@ -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
|
||||
|
|
|
@ -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. */
|
||||
|
||||
|
|
Loading…
Reference in New Issue