<div class="gmail_quote">On Wed, Aug 12, 2009 at 3:18 AM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@chora.dk">stoklund@chora.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="im">John Mosby <<a href="mailto:ojomojo@gmail.com">ojomojo@gmail.com</a>> writes:<br>
<br>
>     Right now, the scavenger is tracking certain CSRs as available, but it<br>
>     is not allowed to use them. That looks like a clobbered CSR just<br>
>     waiting to happen. These poison CSRs should be marked as used when<br>
>     entering the MBB. It does not /have/ to be done through the live-in<br>
>     lists - that just seems like a natural choice.<br>
><br>
><br>
> I committed an RS patch to this effect, but Evan backed it out. I don't see<br>
> CSR clobbering possible, what am I missing here?<br>
<br>
</div>Evan backed out your patch because you were clobbering CSRs ;-)</blockquote><div><br></div><div>Yes, I know. I allowed unused CSRs to be RS-ed, but I didn't have any of the code</div><div>in place to spill them as necessary. I didn't mean to commit that experimental code</div>
<div>at that point.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">> Do you mean using FindUnusedReg() with ExCalleeSaved=false? (sorry, it's late)<br>

<br>
</div>In your patch, you trimmed the regscavenger's CalleeSaved list to not<br>
include the pristine CSRs. Since pristine CSRs currently track as<br>
available, FindUnusedReg would return them.</blockquote><div><br></div><div>If you exclude CSRs in FindUnusedReg(), all CSRs defined by the target,</div><div>whether used or not, are taken out of AvailableRegs, so they can never</div>
<div>be clobbered via RS, or?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">It is possible you meant to reduce the CalleeSaved list to /only/ the<br>

pristine CSRs, treating spilled CSRs as normal registers. That would<br>
make more sense.</blockquote><div><br></div><div>Yes, and I'm trying to make the unused CSRs available (requiring spilling/restoring)</div><div><br></div><div>John</div><div><br></div></div>