# HG changeset patch # User Gilles Duboscq # Date 1347022514 -7200 # Node ID 13d534a47ba30a543c3609e0a8e02e12cd5bc08b # Parent 2691e320d37c862fc9d8b725be6c7b15467fb472 Add a comment to HotSpotAMD64LIRGenerator.emitInvoke about the use of rbx Organize imports diff -r 2691e320d37c -r 13d534a47ba3 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompilationResult.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompilationResult.java Thu Sep 06 19:21:37 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompilationResult.java Fri Sep 07 14:55:14 2012 +0200 @@ -25,8 +25,9 @@ import java.util.*; import com.oracle.graal.api.code.*; -import com.oracle.graal.api.code.CompilationResult.*; -import com.oracle.graal.hotspot.logging.*; +import com.oracle.graal.api.code.CompilationResult.ExceptionHandler; +import com.oracle.graal.api.code.CompilationResult.Mark; +import com.oracle.graal.api.code.CompilationResult.Site; import com.oracle.graal.hotspot.meta.*; /** diff -r 2691e320d37c -r 13d534a47ba3 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java Thu Sep 06 19:21:37 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java Fri Sep 07 14:55:14 2012 +0200 @@ -158,6 +158,8 @@ LIRFrameState callState = stateFor(x.stateDuring(), null, x instanceof InvokeWithExceptionNode ? getLIRBlock(((InvokeWithExceptionNode) x).exceptionEdge()) : null, x.leafGraphId()); Value result = resultOperandFor(x.node().kind()); + // HotSpot needs the methodOop to be passed around in rbx for direct (inline cache patching) or indirect calls (C2I : the interpreter needs the methodOop) + // for the direct call the methodOop is patched in by the code installer if (!inlineVirtualCall) { assert methodOopNode == null; append(new AMD64DirectCallOp(callTarget.targetMethod(), result, parameters, callState, invokeKind, lir));