<div dir="ltr">thanks, committed in r183984</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 13, 2013 at 6:31 PM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk" target="_blank">stoklund@2pi.dk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
On Jun 13, 2013, at 2:09 PM, Derek Schuff <<a href="mailto:dschuff@google.com">dschuff@google.com</a>> wrote:<br>
<br>
> Attached is a patch which makes PEI::calculateCalleeSavedRegisters save/restore all callee saved registers (even those which are not used) in functions which call __builtin_unwind_init().<br>
> __builtin_unwind_init() is an undocumented gcc intrinsic which has this effect, and is used in libgcc_eh.<br>
><br>
> This should fix PR8541.<br>
><br>
> I say "should" because I haven't yet investigated all the relevant details of __builtin_eh_return, but it does fix some problems that we have seen which are similar to that described in the bug.<br>
</div></div>> <csr_unwind.diff><br>
<br>
LGTM, thanks.<br>
<br>
We still have some issues with our handling of eh_return. The extra two registers must be restored by eh_return, but must not be restored by a normal return. We are currently restoring them unconditionally.<br>
<br>
Search the llvm-commits archives for a patch by Pasi (CCed).<br>
<span class="HOEnZb"><font color="#888888"><br>
/jakob</font></span></blockquote></div><br></div>