unwind info for epilogues

Richard Henderson rth@redhat.com
Wed May 6 20:21:00 GMT 2009


Since the beginning, -fasynchronous-unwind-tables has not held correct 
information for function epilogues.  This is an attempt at adding that.

In developing this patch, I tried several different approaches before 
settling on this.  In particular, a code interpretation scheme such as
we use for prologues defeated me.  So in the end I've added enough REG 
notes to let the port maintainer to effectively control the dwarf2 
output directly.  Frankly, I'm considering converting the prologue to 
use the same notes and scrapping the existing interpretation code, which 
is extraordinarily complex.  And incorrect in the middle of the prologue 
for the stack realignment case (the state at the end of the prologue is 
correct, but one intermediate state isn't).

Since this does require changes from port maintainers to their epilogue 
generation code, this currently only has any effect for x86, but should 
not actively fail for other targets.  Although I'd appreaciate folks 
checking that, since I do fiddle around with NOTE_INSN_EPILOGUE_BEG.

I'm on vacation for the next week; I'll have a look at comments when I 
get back.


r~
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: d-epilogue-1
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20090506/d0fbb465/attachment.ksh>


More information about the Gcc-patches mailing list