Request for reviews (S): 6997459: JSR 292 after 6994093 getting: on return to interpreted call, restored SP is corrupted
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Nov 4 11:00:18 PDT 2010
Christian,
What value O0 has on entry? The same as O5? You do not explain why you did
next change. Before you store O5 and now O0 (at the beginning of method):
__ delayed()->nop();
! __ mov(O5_mtype, G5_method_type); // required by throw_WrongMethodType
---
! __ mov(O0_mtype, G5_method_type); // required by throw_WrongMethodType
// mov(G3_method_handle, G3_method_handle); // already in this register
Thanks,
Vladimir
Christian Thalinger wrote:
> http://cr.openjdk.java.net/~twisti/6997459/webrev.01/
>
> 6997459: JSR 292 after 6994093 getting: on return to interpreted call,
> restored SP is corrupted
> Reviewed-by:
>
> After 6994093 running a testcase on SPARC that should throw a
> WrongMethodTypeException results in an assert. The problem is that
> the change of 6994093 destroys O5 which is the saved sender SP and
> that leads to bogus FP values.
>
> The fix is to change temporary register usage in
> MethodHandles::generate_method_handle_interpreter_entry to preserve
> O5.
>
> Tested with failing testcase.
More information about the hotspot-compiler-dev
mailing list