<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thank you, Igor. &nbsp;-- Chris<div><br><div><div>On Oct 25, 2011, at 9:43 AM, Igor Veresov wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
                <div>
                    Looks good!
                </div>
                <div><br>igor<br></div><p style="color: #A0A0A8;">On Monday, October 24, 2011 at 11:53 PM, Vladimir Kozlov wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div>Looks good.<br><br>Thanks,<br>Vladimir<br><br>On 10/24/11 11:32 PM, Christian Thalinger wrote:<br><blockquote type="cite"><div><a href="http://cr.openjdk.java.net/~twisti/7101642/">http://cr.openjdk.java.net/~twisti/7101642/</a><br><br>7101642: JSR 292: SIGSEGV in java.lang.invoke.MethodHandleImpl$FieldAccessor.getFieldI(Ljava/lang/Object;)I<br>Reviewed-by:<br><br>In some cases JSR 292 code crashes on SPARC when using<br>TieredCompilation.  But this bug is actually not related to<br>TieredCompilation.<br><br>In SharedRuntime::fixup_callers_callsite there is a bailout on method<br>handle call sites since we cannot fixup these call sites as the<br>executed method handle adapters are doing the required MethodHandle<br>chain work.  fixup_callers_callsite gets passed in a caller_pc which<br>is then passed on to nmethod::is_method_handle_return.  But<br>is_method_handle_return takes a return PC.  On the other architectures<br>these two addresses are the same but on SPARC it's different<br>(frame::pc_return_offset = 2).<br><br>The fix is to adjust caller_pc by frame::pc_return_offset and pass<br>this value (return_pc) to nmethod::is_method_handle_return.<br><br>Tested with failing test case reported in the CR.<br><br>src/share/vm/runtime/sharedRuntime.cpp<br></div></blockquote></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>
            </blockquote></div><br></div></body></html>