Request for reviews (XS): 7101642: JSR 292: SIGSEGV in =?utf-8?Q?java.lang.invoke.MethodHandleImpl=24FieldAccessor.getFieldI(Ljava/lang/Object; _?=)I
igor.veresov at oracle.com
Tue Oct 25 00:43:58 PDT 2011
On Monday, October 24, 2011 at 11:53 PM, Vladimir Kozlov wrote:
> Looks good.
> On 10/24/11 11:32 PM, Christian Thalinger wrote:
> > http://cr.openjdk.java.net/~twisti/7101642/
> > 7101642: JSR 292: SIGSEGV in java.lang.invoke.MethodHandleImpl$FieldAccessor.getFieldI(Ljava/lang/Object;)I
> > Reviewed-by:
> > In some cases JSR 292 code crashes on SPARC when using
> > TieredCompilation. But this bug is actually not related to
> > TieredCompilation.
> > In SharedRuntime::fixup_callers_callsite there is a bailout on method
> > handle call sites since we cannot fixup these call sites as the
> > executed method handle adapters are doing the required MethodHandle
> > chain work. fixup_callers_callsite gets passed in a caller_pc which
> > is then passed on to nmethod::is_method_handle_return. But
> > is_method_handle_return takes a return PC. On the other architectures
> > these two addresses are the same but on SPARC it's different
> > (frame::pc_return_offset = 2).
> > The fix is to adjust caller_pc by frame::pc_return_offset and pass
> > this value (return_pc) to nmethod::is_method_handle_return.
> > Tested with failing test case reported in the CR.
> > src/share/vm/runtime/sharedRuntime.cpp
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the hotspot-compiler-dev