On Tue, 2005-10-25 at 11:34, Joern RENNECKE wrote: > It can't be easily implemented in target-specific code alone. Sometimes > there is code after the epilogue, so there would have to be > a mechanism to get the dwarf virtual machine back to the pre-epilogue state.
There is. I'm more conversant with IA-64 unwind info than dwarf2 unwind info at the moment. In IA-64 unwind info, we have operators label_state and copy_state. We just emit label_state before the epilogue, and then copy_state after the epilogue. The IA-64 port already does this via hooks in final.c. The code is there if you want to look at it. The IA-64 port is probably the only one emitting epilogue unwind info at the moment. There are equivalent features in dwarf unwind info. Looks like they are called DW_CFA_remember_state and DW_CFA_restore_state. -- Jim Wilson, GNU Tools Support, http://www.specifix.com