On Wed, Feb 04, 2015 at 09:06:02PM -0500, David Edelsohn wrote: > Testing only crtl->emit.sequence_stack->last > does not seem to be sufficient. It seems like it really needs to test > for more of the CALL sequence.
Ugh. You're right, we do need to test more of the call sequence. Shame on me, I've poked at function.c and calls.c before, and ought to know this code. The one thing that might save this approach of inspecting rtl to determine whether the static chain is loaded, is that a SET of r11 must be the static chain. I just have to be careful to not look beyond the call sequence into a previous call or into the prologue, which is why get_last_insn_anywhere() isn't correct. Testing another patch.. Jakub, was your suggestion to use get_last_insn_anywhere() based on not wanting to expose details that should be internal to emit-rtl.[ch]? If so, I can implement an accessor function to give me the previous sequence, but see m32c.c use of crtl->emit.sequence_stack. -- Alan Modra Australia Development Lab, IBM