# HG changeset patch # User Doug Simon # Date 1368717824 -7200 # Node ID c4b1aa93b9afdfd8871f954dcad32a7fd495b403 # Parent 4cd4926ec683117aefec395a84b8d4185646d4f8 rename: HotSpotRuntimeCallTarget -> HotSpotForeignCallLinkage diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Thu May 16 17:23:44 2013 +0200 @@ -211,7 +211,7 @@ @Override public Variable emitForeignCall(ForeignCallLinkage linkage, CallingConvention callCc, DeoptimizingNode info, Value... args) { Stub stub = getStub(); - HotSpotRuntimeCallTarget hsLinkage = (HotSpotRuntimeCallTarget) linkage; + HotSpotForeignCallLinkage hsLinkage = (HotSpotForeignCallLinkage) linkage; boolean destroysRegisters = hsLinkage.destroysRegisters(); AMD64SaveRegistersOp save = null; diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java Thu May 16 17:23:44 2013 +0200 @@ -25,9 +25,9 @@ import static com.oracle.graal.amd64.AMD64.*; import static com.oracle.graal.api.code.CallingConvention.Type.*; import static com.oracle.graal.hotspot.HotSpotBackend.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.RegisterEffect.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.Transition.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.Transition.*; import static com.oracle.graal.hotspot.replacements.AESCryptSubstitutions.DecryptBlockStubCall.*; import static com.oracle.graal.hotspot.replacements.AESCryptSubstitutions.EncryptBlockStubCall.*; import static com.oracle.graal.hotspot.replacements.CipherBlockChainingSubstitutions.DecryptAESCryptStubCall.*; @@ -61,8 +61,8 @@ RegisterValue exception = rax.asValue(Kind.Object); RegisterValue exceptionPc = rdx.asValue(word); CallingConvention exceptionCc = new CallingConvention(0, Value.ILLEGAL, exception, exceptionPc); - register(new HotSpotRuntimeCallTarget(EXCEPTION_HANDLER, 0L, PRESERVES_REGISTERS, LEAF, exceptionCc)); - register(new HotSpotRuntimeCallTarget(EXCEPTION_HANDLER_IN_CALLER, JUMP_ADDRESS, PRESERVES_REGISTERS, LEAF, exceptionCc)); + register(new HotSpotForeignCallLinkage(EXCEPTION_HANDLER, 0L, PRESERVES_REGISTERS, LEAF, exceptionCc)); + register(new HotSpotForeignCallLinkage(EXCEPTION_HANDLER_IN_CALLER, JUMP_ADDRESS, PRESERVES_REGISTERS, LEAF, exceptionCc)); // The crypto stubs do callee saving registerLeafCall(ENCRYPT_BLOCK, config.aescryptEncryptBlockStub, NativeCall, PRESERVES_REGISTERS); diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub.java Thu May 16 17:23:44 2013 +0200 @@ -57,9 +57,9 @@ for (Infopoint infopoint : compResult.getInfopoints()) { assert infopoint instanceof Call : this + " cannot have non-call infopoint: " + infopoint; Call call = (Call) infopoint; - assert call.target instanceof HotSpotRuntimeCallTarget : this + " cannot have non runtime call: " + call.target; - HotSpotRuntimeCallTarget callTarget = (HotSpotRuntimeCallTarget) call.target; - assert !callTarget.isCompiledStub() : this + " cannot call compiled stub " + callTarget; + assert call.target instanceof HotSpotForeignCallLinkage : this + " cannot have non runtime call: " + call.target; + HotSpotForeignCallLinkage linkage = (HotSpotForeignCallLinkage) call.target; + assert !linkage.isCompiledStub() : this + " cannot call compiled stub " + linkage; } return true; } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotForeignCallLinkage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotForeignCallLinkage.java Thu May 16 17:23:44 2013 +0200 @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.hotspot; + +import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.*; + +import java.util.*; + +import com.oracle.graal.api.code.*; +import com.oracle.graal.api.code.CallingConvention.Type; +import com.oracle.graal.api.meta.*; +import com.oracle.graal.compiler.target.*; +import com.oracle.graal.hotspot.meta.*; +import com.oracle.graal.hotspot.stubs.*; +import com.oracle.graal.word.*; + +/** + * The details required to link a HotSpot runtime or stub call. + */ +public class HotSpotForeignCallLinkage implements ForeignCallLinkage, InvokeTarget { + + /** + * Constants for specifying whether a call destroys or preserves registers. A call will always + * destroy {@link HotSpotForeignCallLinkage#getCallingConvention() its} + * {@linkplain CallingConvention#getTemporaries() temporary} registers. + */ + public enum RegisterEffect { + DESTROYS_REGISTERS, PRESERVES_REGISTERS + } + + /** + * Constants for specifying whether a call is a leaf or not. A leaf function does not lock, GC + * or throw exceptions. That is, the thread's execution state during the call is never inspected + * by another thread. + */ + public enum Transition { + LEAF, NOT_LEAF; + } + + /** + * Sentinel marker for a computed jump address. + */ + public static final long JUMP_ADDRESS = 0xDEADDEADBEEFBEEFL; + + /** + * The descriptor of the call. + */ + private final ForeignCallDescriptor descriptor; + + /** + * The entry point address of this call's target. + */ + private long address; + + /** + * Non-null (eventually) iff this is a call to a compiled {@linkplain Stub stub}. + */ + private Stub stub; + + /** + * The calling convention for this call. + */ + private CallingConvention cc; + + private final RegisterEffect effect; + + private final Transition transition; + + /** + * Creates a {@link HotSpotForeignCallLinkage}. + * + * @param descriptor the descriptor of the call + * @param address the address of the code to call + * @param effect specifies if the call destroys or preserves all registers (apart from + * temporaries which are always destroyed) + * @param ccType calling convention type + * @param transition specifies if this is a {@linkplain #isLeaf() leaf} call + */ + public static HotSpotForeignCallLinkage create(ForeignCallDescriptor descriptor, long address, RegisterEffect effect, Type ccType, Transition transition) { + CallingConvention targetCc = createCallingConvention(descriptor, ccType); + return new HotSpotForeignCallLinkage(descriptor, address, effect, transition, targetCc); + } + + /** + * Gets a calling convention for a given descriptor and call type. + */ + public static CallingConvention createCallingConvention(ForeignCallDescriptor descriptor, Type ccType) { + HotSpotRuntime runtime = graalRuntime().getRuntime(); + Class[] argumentTypes = descriptor.getArgumentTypes(); + JavaType[] parameterTypes = new JavaType[argumentTypes.length]; + for (int i = 0; i < parameterTypes.length; ++i) { + parameterTypes[i] = asJavaType(argumentTypes[i], runtime); + } + TargetDescription target = graalRuntime().getTarget(); + JavaType returnType = asJavaType(descriptor.getResultType(), runtime); + return runtime.lookupRegisterConfig().getCallingConvention(ccType, returnType, parameterTypes, target, false); + } + + private static JavaType asJavaType(Class type, HotSpotRuntime runtime) { + if (WordBase.class.isAssignableFrom(type)) { + return runtime.lookupJavaType(wordKind().toJavaClass()); + } else { + return runtime.lookupJavaType(type); + } + } + + public HotSpotForeignCallLinkage(ForeignCallDescriptor descriptor, long address, RegisterEffect effect, Transition transition, CallingConvention cc) { + this.address = address; + this.effect = effect; + this.transition = transition; + this.descriptor = descriptor; + this.cc = cc; + } + + @Override + public String toString() { + return (stub == null ? descriptor.toString() : stub) + "@0x" + Long.toHexString(address) + ":" + cc; + } + + public CallingConvention getCallingConvention() { + return cc; + } + + public long getMaxCallTargetOffset() { + return graalRuntime().getCompilerToVM().getMaxCallTargetOffset(address); + } + + public ForeignCallDescriptor getDescriptor() { + return descriptor; + } + + public void setCompiledStub(Stub stub) { + assert address == 0L : "cannot set stub for linkage that already has an address: " + this; + this.stub = stub; + } + + /** + * Determines if this is a call to a compiled {@linkplain Stub stub}. + */ + public boolean isCompiledStub() { + return address == 0L || stub != null; + } + + public void finalizeAddress(Backend backend) { + if (address == 0) { + assert stub != null : "linkage without an address must be a stub - forgot to register a Stub associated with " + descriptor + "?"; + InstalledCode code = stub.getCode(backend); + + Set destroyedRegisters = stub.getDestroyedRegisters(); + AllocatableValue[] temporaryLocations = new AllocatableValue[destroyedRegisters.size()]; + int i = 0; + for (Register reg : destroyedRegisters) { + temporaryLocations[i++] = reg.asValue(); + } + // Update calling convention with temporaries + cc = new CallingConvention(temporaryLocations, cc.getStackSize(), cc.getReturn(), cc.getArguments()); + address = code.getStart(); + } + } + + public long getAddress() { + assert address != 0L : "address not yet finalized: " + this; + return address; + } + + @Override + public boolean destroysRegisters() { + return effect == DESTROYS_REGISTERS; + } + + /** + * Determines if this is call to a function that does not lock, GC or throw exceptions. That is, + * the thread's execution state during the call is never inspected by another thread. + */ + public boolean isLeaf() { + return transition == Transition.LEAF; + } +} diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotRuntimeCallTarget.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotRuntimeCallTarget.java Thu May 16 17:12:17 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.graal.hotspot; - -import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.RegisterEffect.*; - -import java.util.*; - -import com.oracle.graal.api.code.*; -import com.oracle.graal.api.code.CallingConvention.Type; -import com.oracle.graal.api.meta.*; -import com.oracle.graal.compiler.target.*; -import com.oracle.graal.hotspot.meta.*; -import com.oracle.graal.hotspot.stubs.*; -import com.oracle.graal.word.*; - -/** - * The details required to link a HotSpot runtime or stub call. - */ -public class HotSpotRuntimeCallTarget implements ForeignCallLinkage, InvokeTarget { - - /** - * Constants for specifying whether a call destroys or preserves registers. A call will always - * destroy {@link HotSpotRuntimeCallTarget#getCallingConvention() its} - * {@linkplain CallingConvention#getTemporaries() temporary} registers. - */ - public enum RegisterEffect { - DESTROYS_REGISTERS, PRESERVES_REGISTERS - } - - /** - * Constants for specifying whether a call is a leaf or not. A leaf function does not lock, GC - * or throw exceptions. That is, the thread's execution state during the call is never inspected - * by another thread. - */ - public enum Transition { - LEAF, NOT_LEAF; - } - - /** - * Sentinel marker for a computed jump address. - */ - public static final long JUMP_ADDRESS = 0xDEADDEADBEEFBEEFL; - - /** - * The descriptor of the call. - */ - private final ForeignCallDescriptor descriptor; - - /** - * The entry point address of this call's target. - */ - private long address; - - /** - * Non-null (eventually) iff this is a call to a compiled {@linkplain Stub stub}. - */ - private Stub stub; - - /** - * The calling convention for this call. - */ - private CallingConvention cc; - - private final RegisterEffect effect; - - private final Transition transition; - - /** - * Creates a {@link HotSpotRuntimeCallTarget}. - * - * @param descriptor the descriptor of the call - * @param address the address of the code to call - * @param effect specifies if the call destroys or preserves all registers (apart from - * temporaries which are always destroyed) - * @param ccType calling convention type - * @param transition specifies if this is a {@linkplain #isLeaf() leaf} call - */ - public static HotSpotRuntimeCallTarget create(ForeignCallDescriptor descriptor, long address, RegisterEffect effect, Type ccType, Transition transition) { - CallingConvention targetCc = createCallingConvention(descriptor, ccType); - return new HotSpotRuntimeCallTarget(descriptor, address, effect, transition, targetCc); - } - - /** - * Gets a calling convention for a given descriptor and call type. - */ - public static CallingConvention createCallingConvention(ForeignCallDescriptor descriptor, Type ccType) { - HotSpotRuntime runtime = graalRuntime().getRuntime(); - Class[] argumentTypes = descriptor.getArgumentTypes(); - JavaType[] parameterTypes = new JavaType[argumentTypes.length]; - for (int i = 0; i < parameterTypes.length; ++i) { - parameterTypes[i] = asJavaType(argumentTypes[i], runtime); - } - TargetDescription target = graalRuntime().getTarget(); - JavaType returnType = asJavaType(descriptor.getResultType(), runtime); - return runtime.lookupRegisterConfig().getCallingConvention(ccType, returnType, parameterTypes, target, false); - } - - private static JavaType asJavaType(Class type, HotSpotRuntime runtime) { - if (WordBase.class.isAssignableFrom(type)) { - return runtime.lookupJavaType(wordKind().toJavaClass()); - } else { - return runtime.lookupJavaType(type); - } - } - - public HotSpotRuntimeCallTarget(ForeignCallDescriptor descriptor, long address, RegisterEffect effect, Transition transition, CallingConvention cc) { - this.address = address; - this.effect = effect; - this.transition = transition; - this.descriptor = descriptor; - this.cc = cc; - } - - @Override - public String toString() { - return (stub == null ? descriptor.toString() : stub) + "@0x" + Long.toHexString(address) + ":" + cc; - } - - public CallingConvention getCallingConvention() { - return cc; - } - - public long getMaxCallTargetOffset() { - return graalRuntime().getCompilerToVM().getMaxCallTargetOffset(address); - } - - public ForeignCallDescriptor getDescriptor() { - return descriptor; - } - - public void setCompiledStub(Stub stub) { - assert address == 0L : "cannot set stub for linkage that already has an address: " + this; - this.stub = stub; - } - - /** - * Determines if this is a call to a compiled {@linkplain Stub stub}. - */ - public boolean isCompiledStub() { - return address == 0L || stub != null; - } - - public void finalizeAddress(Backend backend) { - if (address == 0) { - assert stub != null : "linkage without an address must be a stub - forgot to register a Stub associated with " + descriptor + "?"; - InstalledCode code = stub.getCode(backend); - - Set destroyedRegisters = stub.getDestroyedRegisters(); - AllocatableValue[] temporaryLocations = new AllocatableValue[destroyedRegisters.size()]; - int i = 0; - for (Register reg : destroyedRegisters) { - temporaryLocations[i++] = reg.asValue(); - } - // Update calling convention with temporaries - cc = new CallingConvention(temporaryLocations, cc.getStackSize(), cc.getReturn(), cc.getArguments()); - address = code.getStart(); - } - } - - public long getAddress() { - assert address != 0L : "address not yet finalized: " + this; - return address; - } - - @Override - public boolean destroysRegisters() { - return effect == DESTROYS_REGISTERS; - } - - /** - * Determines if this is call to a function that does not lock, GC or throw exceptions. That is, - * the thread's execution state during the call is never inspected by another thread. - */ - public boolean isLeaf() { - return transition == Transition.LEAF; - } -} diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu May 16 17:23:44 2013 +0200 @@ -29,8 +29,8 @@ import static com.oracle.graal.graph.UnsafeAccess.*; import static com.oracle.graal.hotspot.HotSpotBackend.*; import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.RegisterEffect.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.Transition.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.Transition.*; import static com.oracle.graal.hotspot.nodes.MonitorEnterStubCall.*; import static com.oracle.graal.hotspot.nodes.MonitorExitStubCall.*; import static com.oracle.graal.hotspot.nodes.NewArrayStubCall.*; @@ -73,7 +73,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.RegisterEffect; +import com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect; import com.oracle.graal.hotspot.bridge.*; import com.oracle.graal.hotspot.bridge.CompilerToVM.CodeInstallResult; import com.oracle.graal.hotspot.nodes.*; @@ -115,7 +115,7 @@ private BoxingSnippets.Templates boxingSnippets; private LoadExceptionObjectSnippets.Templates exceptionObjectSnippets; - private final Map runtimeCalls = new HashMap<>(); + private final Map foreignCalls = new HashMap<>(); /** * The offset from the origin of an array to the first element. @@ -183,17 +183,17 @@ regConfig = createRegisterConfig(); } - protected HotSpotRuntimeCallTarget register(HotSpotRuntimeCallTarget call) { - HotSpotRuntimeCallTarget oldValue = runtimeCalls.put(call.getDescriptor(), call); + protected HotSpotForeignCallLinkage register(HotSpotForeignCallLinkage linkage) { + HotSpotForeignCallLinkage oldValue = foreignCalls.put(linkage.getDescriptor(), linkage); assert oldValue == null; - return call; + return linkage; } /** * Registers the details for linking a call to a {@link Stub}. */ protected ForeignCallLinkage registerStubCall(ForeignCallDescriptor descriptor) { - return register(HotSpotRuntimeCallTarget.create(descriptor, 0L, PRESERVES_REGISTERS, JavaCallee, NOT_LEAF)); + return register(HotSpotForeignCallLinkage.create(descriptor, 0L, PRESERVES_REGISTERS, JavaCallee, NOT_LEAF)); } /** @@ -202,14 +202,14 @@ protected ForeignCallLinkage registerCRuntimeCall(ForeignCallDescriptor descriptor, long address) { Class resultType = descriptor.getResultType(); assert resultType.isPrimitive() || Word.class.isAssignableFrom(resultType) : "C runtime call must return object thread local storage: " + descriptor; - return register(HotSpotRuntimeCallTarget.create(descriptor, address, DESTROYS_REGISTERS, NativeCall, NOT_LEAF)); + return register(HotSpotForeignCallLinkage.create(descriptor, address, DESTROYS_REGISTERS, NativeCall, NOT_LEAF)); } /** * Registers the details for a call to a stub that never returns. */ protected ForeignCallLinkage registerNoReturnStub(ForeignCallDescriptor descriptor, long address, CallingConvention.Type ccType) { - return register(HotSpotRuntimeCallTarget.create(descriptor, address, PRESERVES_REGISTERS, ccType, NOT_LEAF)); + return register(HotSpotForeignCallLinkage.create(descriptor, address, PRESERVES_REGISTERS, ccType, NOT_LEAF)); } /** @@ -218,7 +218,7 @@ * another thread. */ protected ForeignCallLinkage registerLeafCall(ForeignCallDescriptor descriptor, long address, CallingConvention.Type ccType, RegisterEffect effect) { - return register(HotSpotRuntimeCallTarget.create(descriptor, address, effect, ccType, LEAF)); + return register(HotSpotForeignCallLinkage.create(descriptor, address, effect, ccType, LEAF)); } protected abstract RegisterConfig createRegisterConfig(); @@ -292,18 +292,18 @@ exceptionObjectSnippets = new LoadExceptionObjectSnippets.Templates(this, replacements, graalRuntime.getTarget()); TargetDescription target = getTarget(); - link(new NewInstanceStub(this, replacements, target, runtimeCalls.get(NEW_INSTANCE))); - link(new NewArrayStub(this, replacements, target, runtimeCalls.get(NEW_ARRAY))); - link(new NewMultiArrayStub(this, replacements, target, runtimeCalls.get(NEW_MULTI_ARRAY))); - link(new ThreadIsInterruptedStub(this, replacements, target, runtimeCalls.get(THREAD_IS_INTERRUPTED))); - link(new ExceptionHandlerStub(this, replacements, target, runtimeCalls.get(EXCEPTION_HANDLER))); - link(new UnwindExceptionToCallerStub(this, replacements, target, runtimeCalls.get(UNWIND_EXCEPTION_TO_CALLER))); - link(new VerifyOopStub(this, replacements, target, runtimeCalls.get(VERIFY_OOP))); - link(new OSRMigrationEndStub(this, replacements, target, runtimeCalls.get(OSR_MIGRATION_END))); - link(new LogPrimitiveStub(this, replacements, target, runtimeCalls.get(LOG_PRIMITIVE))); - link(new LogObjectStub(this, replacements, target, runtimeCalls.get(LOG_OBJECT))); - link(new LogPrintfStub(this, replacements, target, runtimeCalls.get(LOG_PRINTF))); - link(new VMErrorStub(this, replacements, target, runtimeCalls.get(VM_ERROR))); + link(new NewInstanceStub(this, replacements, target, foreignCalls.get(NEW_INSTANCE))); + link(new NewArrayStub(this, replacements, target, foreignCalls.get(NEW_ARRAY))); + link(new NewMultiArrayStub(this, replacements, target, foreignCalls.get(NEW_MULTI_ARRAY))); + link(new ThreadIsInterruptedStub(this, replacements, target, foreignCalls.get(THREAD_IS_INTERRUPTED))); + link(new ExceptionHandlerStub(this, replacements, target, foreignCalls.get(EXCEPTION_HANDLER))); + link(new UnwindExceptionToCallerStub(this, replacements, target, foreignCalls.get(UNWIND_EXCEPTION_TO_CALLER))); + link(new VerifyOopStub(this, replacements, target, foreignCalls.get(VERIFY_OOP))); + link(new OSRMigrationEndStub(this, replacements, target, foreignCalls.get(OSR_MIGRATION_END))); + link(new LogPrimitiveStub(this, replacements, target, foreignCalls.get(LOG_PRIMITIVE))); + link(new LogObjectStub(this, replacements, target, foreignCalls.get(LOG_OBJECT))); + link(new LogPrintfStub(this, replacements, target, foreignCalls.get(LOG_PRINTF))); + link(new VMErrorStub(this, replacements, target, foreignCalls.get(VM_ERROR))); linkRuntimeCall(IDENTITY_HASHCODE, config.identityHashCodeAddress, replacements); linkRuntimeCall(REGISTER_FINALIZER, config.registerFinalizerAddress, replacements); @@ -321,11 +321,11 @@ private void linkRuntimeCall(ForeignCallDescriptor descriptor, long address, Replacements replacements) { RuntimeCallStub stub = new RuntimeCallStub(address, descriptor, true, this, replacements); - HotSpotRuntimeCallTarget linkage = stub.getLinkage(); - HotSpotRuntimeCallTarget targetLinkage = stub.getTargetLinkage(); + HotSpotForeignCallLinkage linkage = stub.getLinkage(); + HotSpotForeignCallLinkage targetLinkage = stub.getTargetLinkage(); linkage.setCompiledStub(stub); - runtimeCalls.put(linkage.getDescriptor(), linkage); - runtimeCalls.put(targetLinkage.getDescriptor(), targetLinkage); + foreignCalls.put(linkage.getDescriptor(), linkage); + foreignCalls.put(targetLinkage.getDescriptor(), targetLinkage); } public HotSpotGraalRuntime getGraalRuntime() { @@ -854,9 +854,9 @@ return HotSpotResolvedObjectType.fromClass(clazz); } - public HotSpotRuntimeCallTarget lookupForeignCall(ForeignCallDescriptor descriptor) { - HotSpotRuntimeCallTarget callTarget = runtimeCalls.get(descriptor); - assert runtimeCalls != null : descriptor; + public HotSpotForeignCallLinkage lookupForeignCall(ForeignCallDescriptor descriptor) { + HotSpotForeignCallLinkage callTarget = foreignCalls.get(descriptor); + assert foreignCalls != null : descriptor; callTarget.finalizeAddress(graalRuntime.getBackend()); return callTarget; } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/CRuntimeStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/CRuntimeStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/CRuntimeStub.java Thu May 16 17:23:44 2013 +0200 @@ -34,7 +34,7 @@ */ public abstract class CRuntimeStub extends SnippetStub { - public CRuntimeStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public CRuntimeStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ExceptionHandlerStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ExceptionHandlerStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ExceptionHandlerStub.java Thu May 16 17:23:44 2013 +0200 @@ -50,7 +50,7 @@ */ public class ExceptionHandlerStub extends CRuntimeStub { - public ExceptionHandlerStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public ExceptionHandlerStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogObjectStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogObjectStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogObjectStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class LogObjectStub extends CRuntimeStub { - public LogObjectStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public LogObjectStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogPrimitiveStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogPrimitiveStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogPrimitiveStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class LogPrimitiveStub extends CRuntimeStub { - public LogPrimitiveStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public LogPrimitiveStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogPrintfStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogPrintfStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/LogPrintfStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class LogPrintfStub extends CRuntimeStub { - public LogPrintfStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public LogPrintfStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewArrayStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewArrayStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewArrayStub.java Thu May 16 17:23:44 2013 +0200 @@ -52,7 +52,7 @@ */ public class NewArrayStub extends SnippetStub { - public NewArrayStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public NewArrayStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Thu May 16 17:23:44 2013 +0200 @@ -52,7 +52,7 @@ */ public class NewInstanceStub extends SnippetStub { - public NewInstanceStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public NewInstanceStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewMultiArrayStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewMultiArrayStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewMultiArrayStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class NewMultiArrayStub extends CRuntimeStub { - public NewMultiArrayStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public NewMultiArrayStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/OSRMigrationEndStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/OSRMigrationEndStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/OSRMigrationEndStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class OSRMigrationEndStub extends CRuntimeStub { - public OSRMigrationEndStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public OSRMigrationEndStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/RuntimeCallStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/RuntimeCallStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/RuntimeCallStub.java Thu May 16 17:23:44 2013 +0200 @@ -25,8 +25,8 @@ import static com.oracle.graal.api.code.CallingConvention.Type.*; import static com.oracle.graal.api.meta.MetaUtil.*; import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.RegisterEffect.*; -import static com.oracle.graal.hotspot.HotSpotRuntimeCallTarget.Transition.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.*; +import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.Transition.*; import java.lang.reflect.*; @@ -58,7 +58,7 @@ /** * The target of the call. */ - private final HotSpotRuntimeCallTarget target; + private final HotSpotForeignCallLinkage target; /** * Specifies if the JavaThread value for the current thread is to be prepended to the arguments @@ -75,17 +75,17 @@ * to the arguments for the call to {@code address} */ public RuntimeCallStub(long address, ForeignCallDescriptor sig, boolean prependThread, HotSpotRuntime runtime, Replacements replacements) { - super(runtime, replacements, HotSpotRuntimeCallTarget.create(sig, 0L, PRESERVES_REGISTERS, JavaCallee, NOT_LEAF)); + super(runtime, replacements, HotSpotForeignCallLinkage.create(sig, 0L, PRESERVES_REGISTERS, JavaCallee, NOT_LEAF)); this.prependThread = prependThread; Class[] targetParameterTypes = createTargetParameters(sig); ForeignCallDescriptor targetSig = new ForeignCallDescriptor(sig.getName() + ":C", sig.getResultType(), targetParameterTypes); - target = HotSpotRuntimeCallTarget.create(targetSig, address, DESTROYS_REGISTERS, NativeCall, NOT_LEAF); + target = HotSpotForeignCallLinkage.create(targetSig, address, DESTROYS_REGISTERS, NativeCall, NOT_LEAF); } /** * Gets the linkage information for the runtime call. */ - public HotSpotRuntimeCallTarget getTargetLinkage() { + public HotSpotForeignCallLinkage getTargetLinkage() { return target; } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java Thu May 16 17:23:44 2013 +0200 @@ -66,7 +66,7 @@ * * @param linkage linkage details for a call to the stub */ - public SnippetStub(HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public SnippetStub(HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, linkage); this.snippet = new Template(runtime, replacements, target, getClass()); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java Thu May 16 17:23:44 2013 +0200 @@ -56,7 +56,7 @@ /** * The linkage information for a call to this stub from compiled code. */ - protected final HotSpotRuntimeCallTarget linkage; + protected final HotSpotForeignCallLinkage linkage; /** * The code installed for the stub. @@ -100,7 +100,7 @@ * * @param linkage linkage details for a call to the stub */ - public Stub(HotSpotRuntime runtime, Replacements replacements, HotSpotRuntimeCallTarget linkage) { + public Stub(HotSpotRuntime runtime, Replacements replacements, HotSpotForeignCallLinkage linkage) { this.linkage = linkage; this.runtime = runtime; this.replacements = replacements; @@ -109,7 +109,7 @@ /** * Gets the linkage for a call to this stub from compiled code. */ - public HotSpotRuntimeCallTarget getLinkage() { + public HotSpotForeignCallLinkage getLinkage() { return linkage; } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ThreadIsInterruptedStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ThreadIsInterruptedStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ThreadIsInterruptedStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class ThreadIsInterruptedStub extends CRuntimeStub { - public ThreadIsInterruptedStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public ThreadIsInterruptedStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/UnwindExceptionToCallerStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/UnwindExceptionToCallerStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/UnwindExceptionToCallerStub.java Thu May 16 17:23:44 2013 +0200 @@ -47,7 +47,7 @@ */ public class UnwindExceptionToCallerStub extends CRuntimeStub { - public UnwindExceptionToCallerStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public UnwindExceptionToCallerStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VMErrorStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VMErrorStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VMErrorStub.java Thu May 16 17:23:44 2013 +0200 @@ -41,7 +41,7 @@ */ public class VMErrorStub extends CRuntimeStub { - public VMErrorStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public VMErrorStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VerifyOopStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VerifyOopStub.java Thu May 16 17:12:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VerifyOopStub.java Thu May 16 17:23:44 2013 +0200 @@ -36,7 +36,7 @@ */ public class VerifyOopStub extends CRuntimeStub { - public VerifyOopStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotRuntimeCallTarget linkage) { + public VerifyOopStub(final HotSpotRuntime runtime, Replacements replacements, TargetDescription target, HotSpotForeignCallLinkage linkage) { super(runtime, replacements, target, linkage); } diff -r 4cd4926ec683 -r c4b1aa93b9af src/share/vm/classfile/systemDictionary.hpp --- a/src/share/vm/classfile/systemDictionary.hpp Thu May 16 17:12:17 2013 +0200 +++ b/src/share/vm/classfile/systemDictionary.hpp Thu May 16 17:23:44 2013 +0200 @@ -188,7 +188,7 @@ do_klass(HotSpotCompiledCode_klass, com_oracle_graal_hotspot_HotSpotCompiledCode, Opt) \ do_klass(HotSpotCompiledNmethod_klass, com_oracle_graal_hotspot_HotSpotCompiledNmethod, Opt) \ do_klass(HotSpotCompiledRuntimeStub_klass, com_oracle_graal_hotspot_HotSpotCompiledRuntimeStub, Opt) \ - do_klass(HotSpotRuntimeCallTarget_klass, com_oracle_graal_hotspot_HotSpotRuntimeCallTarget, Opt) \ + do_klass(HotSpotForeignCallLinkage_klass, com_oracle_graal_hotspot_HotSpotForeignCallLinkage, Opt) \ do_klass(HotSpotCodeInfo_klass, com_oracle_graal_hotspot_meta_HotSpotCodeInfo, Opt) \ do_klass(HotSpotInstalledCode_klass, com_oracle_graal_hotspot_meta_HotSpotInstalledCode, Opt) \ do_klass(HotSpotNmethod_klass, com_oracle_graal_hotspot_meta_HotSpotNmethod, Opt) \ diff -r 4cd4926ec683 -r c4b1aa93b9af src/share/vm/classfile/vmSymbols.hpp --- a/src/share/vm/classfile/vmSymbols.hpp Thu May 16 17:12:17 2013 +0200 +++ b/src/share/vm/classfile/vmSymbols.hpp Thu May 16 17:23:44 2013 +0200 @@ -299,7 +299,7 @@ template(com_oracle_graal_hotspot_HotSpotCompiledCode, "com/oracle/graal/hotspot/HotSpotCompiledCode") \ template(com_oracle_graal_hotspot_HotSpotCompiledNmethod, "com/oracle/graal/hotspot/HotSpotCompiledNmethod") \ template(com_oracle_graal_hotspot_HotSpotCompiledRuntimeStub, "com/oracle/graal/hotspot/HotSpotCompiledRuntimeStub") \ - template(com_oracle_graal_hotspot_HotSpotRuntimeCallTarget, "com/oracle/graal/hotspot/HotSpotRuntimeCallTarget") \ + template(com_oracle_graal_hotspot_HotSpotForeignCallLinkage, "com/oracle/graal/hotspot/HotSpotForeignCallLinkage") \ template(com_oracle_graal_hotspot_bridge_VMToCompiler, "com/oracle/graal/hotspot/bridge/VMToCompiler") \ template(com_oracle_graal_hotspot_bridge_CompilerToVMImpl, "com/oracle/graal/hotspot/bridge/CompilerToVMImpl") \ template(com_oracle_graal_hotspot_meta_HotSpotCodeInfo, "com/oracle/graal/hotspot/meta/HotSpotCodeInfo") \ diff -r 4cd4926ec683 -r c4b1aa93b9af src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Thu May 16 17:12:17 2013 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Thu May 16 17:23:44 2013 +0200 @@ -647,17 +647,17 @@ InstanceKlass* target_klass = InstanceKlass::cast(target->klass()); oop hotspot_method = NULL; // JavaMethod - oop global_stub = NULL; + oop foreign_call = NULL; - if (target_klass->is_subclass_of(SystemDictionary::HotSpotRuntimeCallTarget_klass())) { - global_stub = target; + if (target_klass->is_subclass_of(SystemDictionary::HotSpotForeignCallLinkage_klass())) { + foreign_call = target; } else { hotspot_method = target; } oop debug_info = CompilationResult_Call::debugInfo(site); - assert((hotspot_method ? 1 : 0) + (global_stub ? 1 : 0) == 1, "Call site needs exactly one type"); + assert((hotspot_method ? 1 : 0) + (foreign_call ? 1 : 0) == 1, "Call site needs exactly one type"); NativeInstruction* inst = nativeInstruction_at(_instructions->start() + pc_offset); jint next_pc_offset = 0x0; @@ -704,24 +704,24 @@ } } - if (global_stub != NULL) { - jlong global_stub_destination = HotSpotRuntimeCallTarget::address(global_stub); + if (foreign_call != NULL) { + jlong foreign_call_destination = HotSpotForeignCallLinkage::address(foreign_call); if (inst->is_call()) { // NOTE: for call without a mov, the offset must fit a 32-bit immediate // see also CompilerToVM.getMaxCallTargetOffset() NativeCall* call = nativeCall_at((address) (inst)); - call->set_destination((address) global_stub_destination); + call->set_destination((address) foreign_call_destination); _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); } else if (inst->is_mov_literal64()) { NativeMovConstReg* mov = nativeMovConstReg_at((address) (inst)); - mov->set_data((intptr_t) global_stub_destination); + mov->set_data((intptr_t) foreign_call_destination); _instructions->relocate(mov->instruction_address(), runtime_call_Relocation::spec(), Assembler::imm_operand); } else { NativeJump* jump = nativeJump_at((address) (inst)); - jump->set_jump_destination((address) global_stub_destination); + jump->set_jump_destination((address) foreign_call_destination); _instructions->relocate((address)inst, runtime_call_Relocation::spec(), Assembler::call32_operand); } - TRACE_graal_3("relocating (stub) at %p", inst); + TRACE_graal_3("relocating (foreign call) at %p", inst); } else { // method != NULL assert(hotspot_method != NULL, "unexpected JavaMethod"); #ifdef ASSERT diff -r 4cd4926ec683 -r c4b1aa93b9af src/share/vm/graal/graalJavaAccess.hpp --- a/src/share/vm/graal/graalJavaAccess.hpp Thu May 16 17:12:17 2013 +0200 +++ b/src/share/vm/graal/graalJavaAccess.hpp Thu May 16 17:23:44 2013 +0200 @@ -95,8 +95,8 @@ start_class(HotSpotCompiledRuntimeStub) \ oop_field(HotSpotCompiledRuntimeStub, stubName, "Ljava/lang/String;") \ end_class \ - start_class(HotSpotRuntimeCallTarget) \ - long_field(HotSpotRuntimeCallTarget, address) \ + start_class(HotSpotForeignCallLinkage) \ + long_field(HotSpotForeignCallLinkage, address) \ end_class \ start_class(ExceptionHandler) \ int_field(ExceptionHandler, startBCI) \