Request for reviews (M): 6934966: JSR 292 add C1 logic for saved SP over MethodHandle calls
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Mon Mar 15 11:21:07 PDT 2010
On Mar 15, 2010, at 10:44 AM, Christian Thalinger wrote:
> On Mon, 2010-03-15 at 10:37 -0700, Tom Rodriguez wrote:
>> I think LIRGenerator::get_method_handle_invoke_SP_save_opr should
>> really be declared in FrameMap instead of down in LIRGenerator since
>> it's a platform invariant. Since it's invariant you don't really have
>> to pass it down all the way through LIRGenerator so this change could
>> be a lot smaller. You could simply do this in c1_LIR.cpp:
>>
>> + if (opJavaCall->is_method_handle_invoke()) do_temp(FrameMap::method_handle_saved_sp_opr());
>>
>> I know we talked about doing it way you've done it but seeing the
>> final webrev I think it can be done much more simply. preserve_SP can
>> just use FrameMap::method_handle_saved_sp_opr() directly as well.
>>
>> If you want to keep what you have I'm not against that but it's more
>> complicated than it really needs to be.
>
> Good point. I will do the suggested change.
>
> Btw. I tried to also do a do_input on the temporary register, as you
> said, but that triggered an assert (can't remember which one).
Actually I don't think the do_input is necessary to protect the register from being used for debug info in C1. We may want to introduce an assert that the SP preserve register is never mentioned in debug info, though I'm not sure where we should place that.
tom
>
> -- Christian
>
More information about the hotspot-compiler-dev
mailing list