Message ID | 871ur6h3j6.fsf@redhat.com |
---|---|
State | New |
Headers | show |
On 01/11/2012 10:39 PM, Nick Clifton wrote: > +(define_expand "return" > + [(return)] > + "" > + "rx_expand_epilogue (false); DONE;" > +) Not an ideal solution, since the availability of this pattern implies it's extremely cheap, and we'll replace jumps to the epilogue with this pattern. A hack-around might be (define_expand "return" [(return)] "false" { gcc_unreachable (); }) Or to define an availability predicate similar to i386, testing if the epilogue is trivial, and only a return insn is needed. r~
Index: gcc/config/rx/rx.md =================================================================== --- gcc/config/rx/rx.md (revision 183092) +++ gcc/config/rx/rx.md (working copy) @@ -340,6 +340,12 @@ (set_attr "length" "2")] ) +(define_expand "return" + [(return)] + "" + "rx_expand_epilogue (false); DONE;" +) + (define_insn "simple_return" [(return)] ""