<div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">At least for 32bit x86 reserving another register as alternative frame<br>
pointer is very heavy. The above would allow normal spill logic to<br>
decide when to keep a reference in register and when not. It also reuses<br>
existing functionality as much as possible.<br></blockquote><div><br></div><div>Hi Joerg,</div><div><br></div><div>Yes, this was a problem in my implementation also. Empirically, for the chips I work on, reserving the extra frame register was shown to be a win. But, of course, I am sure this win is not universal.</div>
<div><br></div><div>I did receive permission to share my work with the community. Although, without discovering a creative solution to the extra frame register problem, I doubt my patch would be wanted. If anyone is motivated to work out this issue, I would be happy to help. </div>
<div><br></div><div>My current thinking is that an emergency spill slot could be set aside to hold the original, ABI conforming, frame pointer. Not an ideal solution, but in my situation where I must cover any code a user throws at me, breaking the ABI and playing with the stack is preferred.</div>
<div><br></div><div>Thanks,</div><div>Cameron</div></div></div>