diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-03-13 14:47:54 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-03-13 14:47:54 -0700 |
commit | 45586a95c2454499681930fd87a5e7d3db6bbc34 (patch) | |
tree | 4143e034ccec7f43cec9c385845464c542565142 /gcc | |
parent | fabf77509211dabd11f2f06b39115c7f4e4db735 (diff) | |
download | gcc-45586a95c2454499681930fd87a5e7d3db6bbc34.zip gcc-45586a95c2454499681930fd87a5e7d3db6bbc34.tar.gz gcc-45586a95c2454499681930fd87a5e7d3db6bbc34.tar.bz2 |
pa.c (eligible_for_epilogue_delay): Insns which access %r2 can not be used to...
* pa.c eligible_for_epilogue_delay): Insns which access
%r2 can not be used to fill the epilogue's delay slot.
From-SVN: r3727
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 2928b89..84d1e50 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -2066,6 +2066,13 @@ eligible_for_epilogue_delay (trial, slot) return 0; if (get_attr_length (trial) != 1) return 0; + + /* The epilogue clobbers whatever value is in %r2 before the + delay slot executes, so insns which use %r2 can not be + used to fill the epilogue's delay slot. */ + if (refers_to_regno_p (2, 3, PATTERN (trial), NULL_PTR)) + return 0; + return (get_attr_in_branch_delay (trial) == IN_BRANCH_DELAY_TRUE); } |