Christophe LYON wrote:
I have been look at the Dwarf2 frame info generated by GCC, and how it works. From what I can see, only the register saves are recorded, and not the restores. Why?
The frame info is primarily used for C++ EH stack unwinding. Since you can't throw a C++ exception in an epilogue, epilogue frame info isn't needed for this, and was never implemented for most targets. Which is a shame.
There is a PR for this, PR 18749, for the x86-64 target. The lack of epilogue unwind info shows up if you run the libunwind testsuite. Otherwise, it is really hard to find an example where the missing unwind info is a problem.
-- Jim Wilson, GNU Tools Support, http://www.specifix.com