The patch
I posted earlier makes it work as (I think) was intended; I've
qualified this
on Apple's branch (no problems), and will go ahead and qualify it on
mainline
unless there's objection.
I didnt' look at the patch, sorry.
The reason I think we've got a fundamental problem is if we do
any walking backwards through any assignments to pseudos, then
we run the risk of hitting the problem you've described.
Add to that my worry that the walk backwards is a correctness
issue for S_R_C machines, then we're in some ways stuck unless
we want to take drastic measures.