# HG changeset patch # User Christian Wimmer # Date 1453415064 28800 # Node ID 9306a961109706ac02a09845a249a30b88f62260 # Parent f868bd0c3f02d71dd036b2ee6bd4cabd0b3c7bec Update JVMCI import: Make CallingConvention.Type extensible; remove unused stackOnly parameter diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java --- a/graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java Thu Jan 21 14:24:24 2016 -0800 @@ -26,7 +26,6 @@ import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.code.CodeCacheProvider; -import jdk.vm.ci.code.CodeUtil; import jdk.vm.ci.code.CompiledCode; import jdk.vm.ci.code.InstalledCode; import jdk.vm.ci.code.InvalidInstalledCodeException; @@ -46,6 +45,8 @@ import com.oracle.graal.compiler.target.Backend; import com.oracle.graal.debug.Debug; import com.oracle.graal.debug.Debug.Scope; +import com.oracle.graal.nodes.StructuredGraph; +import com.oracle.graal.nodes.StructuredGraph.AllowAssumptions; import com.oracle.graal.runtime.RuntimeProvider; import com.oracle.graal.test.GraalTest; @@ -75,7 +76,7 @@ ResolvedJavaMethod method = getMetaAccess().lookupJavaMethod(m); try (Scope s = Debug.scope("assembleMethod", method, codeCache)) { RegisterConfig registerConfig = codeCache.getRegisterConfig(); - CallingConvention cc = CodeUtil.getCallingConvention(codeCache, CallingConvention.Type.JavaCallee, method, false); + CallingConvention cc = backend.newLIRGenerationResult("", null, null, new StructuredGraph(method, AllowAssumptions.NO), null).getCallingConvention(); CompilationResult compResult = new CompilationResult(); byte[] targetCode = test.generateCode(compResult, codeCache.getTarget(), registerConfig, cc); diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.compiler.aarch64/src/com/oracle/graal/compiler/aarch64/AArch64NodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler.aarch64/src/com/oracle/graal/compiler/aarch64/AArch64NodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.compiler.aarch64/src/com/oracle/graal/compiler/aarch64/AArch64NodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -24,16 +24,10 @@ package com.oracle.graal.compiler.aarch64; import com.oracle.graal.compiler.gen.NodeLIRBuilder; -import com.oracle.graal.lir.aarch64.AArch64BreakpointOp; import com.oracle.graal.lir.gen.LIRGeneratorTool; -import com.oracle.graal.nodes.BreakpointNode; import com.oracle.graal.nodes.StructuredGraph; import com.oracle.graal.nodes.ValueNode; -import jdk.vm.ci.code.CallingConvention; -import jdk.vm.ci.meta.JavaType; -import jdk.vm.ci.meta.Value; - /** * This class implements the AArch64 specific portion of the LIR generator. */ @@ -50,18 +44,6 @@ } @Override - public void visitBreakpointNode(BreakpointNode node) { - JavaType[] sig = new JavaType[node.arguments().size()]; - for (int i = 0; i < sig.length; i++) { - sig[i] = node.arguments().get(i).stamp().javaType(gen.getMetaAccess()); - } - - Value[] parameters = visitInvokeArguments(gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(CallingConvention.Type.JavaCall, null, sig, gen.target(), false), - node.arguments()); - append(new AArch64BreakpointOp(parameters)); - } - - @Override public AArch64LIRGenerator getLIRGeneratorTool() { return (AArch64LIRGenerator) super.getLIRGeneratorTool(); } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -24,17 +24,13 @@ package com.oracle.graal.compiler.amd64; import jdk.vm.ci.amd64.AMD64; -import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.meta.AllocatableValue; -import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.Value; import com.oracle.graal.compiler.gen.NodeLIRBuilder; import com.oracle.graal.lir.LIRFrameState; -import com.oracle.graal.lir.amd64.AMD64BreakpointOp; import com.oracle.graal.lir.amd64.AMD64Call; import com.oracle.graal.lir.gen.LIRGeneratorTool; -import com.oracle.graal.nodes.BreakpointNode; import com.oracle.graal.nodes.DeoptimizingNode; import com.oracle.graal.nodes.FixedNode; import com.oracle.graal.nodes.FixedWithNextNode; @@ -102,18 +98,6 @@ } @Override - public void visitBreakpointNode(BreakpointNode node) { - JavaType[] sig = new JavaType[node.arguments().size()]; - for (int i = 0; i < sig.length; i++) { - sig[i] = node.arguments().get(i).stamp().javaType(gen.getMetaAccess()); - } - - Value[] parameters = visitInvokeArguments(gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(CallingConvention.Type.JavaCall, null, sig, gen.target(), false), - node.arguments()); - append(new AMD64BreakpointOp(parameters)); - } - - @Override public AMD64LIRGenerator getLIRGeneratorTool() { return (AMD64LIRGenerator) gen; } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCNodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCNodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCNodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -23,17 +23,11 @@ package com.oracle.graal.compiler.sparc; -import jdk.vm.ci.code.CallingConvention; -import jdk.vm.ci.meta.JavaType; -import jdk.vm.ci.meta.Value; - import com.oracle.graal.compiler.gen.NodeLIRBuilder; import com.oracle.graal.lir.LabelRef; import com.oracle.graal.lir.StandardOp.JumpOp; import com.oracle.graal.lir.gen.LIRGeneratorTool; -import com.oracle.graal.lir.sparc.SPARCBreakpointOp; import com.oracle.graal.lir.sparc.SPARCJumpOp; -import com.oracle.graal.nodes.BreakpointNode; import com.oracle.graal.nodes.StructuredGraph; import com.oracle.graal.nodes.ValueNode; @@ -53,18 +47,6 @@ } @Override - public void visitBreakpointNode(BreakpointNode node) { - JavaType[] sig = new JavaType[node.arguments().size()]; - for (int i = 0; i < sig.length; i++) { - sig[i] = node.arguments().get(i).stamp().javaType(gen.getMetaAccess()); - } - - Value[] parameters = visitInvokeArguments(gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(CallingConvention.Type.JavaCall, null, sig, gen.target(), false), - node.arguments()); - append(new SPARCBreakpointOp(parameters)); - } - - @Override protected JumpOp newJumpOp(LabelRef ref) { return new SPARCJumpOp(ref); } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -612,7 +612,7 @@ public void emitInvoke(Invoke x) { LoweredCallTargetNode callTarget = (LoweredCallTargetNode) x.callTarget(); CallingConvention invokeCc = gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(callTarget.callType(), x.asNode().stamp().javaType(gen.getMetaAccess()), - callTarget.signature(), gen.target(), false); + callTarget.signature(), gen.target()); gen.getResult().getFrameMapBuilder().callsMethod(invokeCc); Value[] parameters = visitInvokeArguments(invokeCc, callTarget.arguments()); diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotBackend.java --- a/graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotBackend.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotBackend.java Thu Jan 21 14:24:24 2016 -0800 @@ -28,7 +28,6 @@ import static jdk.vm.ci.aarch64.AArch64.r10; import static jdk.vm.ci.aarch64.AArch64.sp; import static jdk.vm.ci.aarch64.AArch64.zr; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCallee; import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.hotspot.HotSpotVMConfig.config; import static jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig.fp; @@ -39,6 +38,7 @@ import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterConfig; import jdk.vm.ci.code.StackSlot; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotVMConfig; import jdk.vm.ci.hotspot.aarch64.AArch64HotSpotRegisterConfig; import jdk.vm.ci.meta.JavaType; @@ -255,7 +255,7 @@ HotSpotProviders providers = getProviders(); if (installedCodeOwner != null && !isStatic(installedCodeOwner.getModifiers())) { crb.recordMark(config.MARKID_UNVERIFIED_ENTRY); - CallingConvention cc = regConfig.getCallingConvention(JavaCallee, null, new JavaType[]{providers.getMetaAccess().lookupJavaType(Object.class)}, getTarget(), false); + CallingConvention cc = regConfig.getCallingConvention(HotSpotCallingConventionType.JavaCallee, null, new JavaType[]{providers.getMetaAccess().lookupJavaType(Object.class)}, getTarget()); // See definition of IC_Klass in c1_LIRAssembler_aarch64.cpp // equal to scratch(1) careful! Register inlineCacheKlass = AArch64HotSpotRegisterConfig.inlineCacheRegister; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotForeignCallsProvider.java --- a/graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotForeignCallsProvider.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotForeignCallsProvider.java Thu Jan 21 14:24:24 2016 -0800 @@ -29,16 +29,9 @@ import static com.oracle.graal.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32; import static jdk.vm.ci.aarch64.AArch64.r0; import static jdk.vm.ci.aarch64.AArch64.r3; -import static jdk.vm.ci.code.CallingConvention.Type.NativeCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall; import static jdk.vm.ci.meta.LocationIdentity.any; import static jdk.vm.ci.meta.Value.ILLEGAL; - -import com.oracle.graal.hotspot.HotSpotBackend; -import com.oracle.graal.hotspot.HotSpotForeignCallLinkageImpl; -import com.oracle.graal.hotspot.HotSpotGraalRuntimeProvider; -import com.oracle.graal.hotspot.meta.HotSpotHostForeignCallsProvider; -import com.oracle.graal.hotspot.meta.HotSpotProviders; - import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.code.CodeCacheProvider; import jdk.vm.ci.code.RegisterValue; @@ -51,6 +44,12 @@ import jdk.vm.ci.meta.PlatformKind; import jdk.vm.ci.meta.Value; +import com.oracle.graal.hotspot.HotSpotBackend; +import com.oracle.graal.hotspot.HotSpotForeignCallLinkageImpl; +import com.oracle.graal.hotspot.HotSpotGraalRuntimeProvider; +import com.oracle.graal.hotspot.meta.HotSpotHostForeignCallsProvider; +import com.oracle.graal.hotspot.meta.HotSpotProviders; + public class AArch64HotSpotForeignCallsProvider extends HotSpotHostForeignCallsProvider { private final Value[] nativeABICallerSaveRegisters; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotNodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotNodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.aarch64/src/com/oracle/graal/hotspot/aarch64/AArch64HotSpotNodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -38,8 +38,10 @@ import jdk.vm.ci.code.StackSlot; import jdk.vm.ci.code.ValueUtil; import jdk.vm.ci.common.JVMCIError; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod; import jdk.vm.ci.meta.AllocatableValue; +import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.LIRKind; import jdk.vm.ci.meta.Value; @@ -57,9 +59,11 @@ import com.oracle.graal.hotspot.nodes.HotSpotIndirectCallTargetNode; import com.oracle.graal.lir.LIRFrameState; import com.oracle.graal.lir.Variable; +import com.oracle.graal.lir.aarch64.AArch64BreakpointOp; import com.oracle.graal.lir.aarch64.AArch64Move.CompareAndSwap; import com.oracle.graal.lir.gen.LIRGeneratorTool; import com.oracle.graal.nodes.CallTargetNode.InvokeKind; +import com.oracle.graal.nodes.BreakpointNode; import com.oracle.graal.nodes.DirectCallTargetNode; import com.oracle.graal.nodes.FullInfopointNode; import com.oracle.graal.nodes.IndirectCallTargetNode; @@ -189,4 +193,16 @@ append(new CompareAndSwap(result, cmpValue, newValue, getGen().asAddressValue(operand(x.getAddress())), scratch)); setResult(x, result); } + + @Override + public void visitBreakpointNode(BreakpointNode node) { + JavaType[] sig = new JavaType[node.arguments().size()]; + for (int i = 0; i < sig.length; i++) { + sig[i] = node.arguments().get(i).stamp().javaType(gen.getMetaAccess()); + } + + Value[] parameters = visitInvokeArguments(gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(HotSpotCallingConventionType.JavaCall, null, sig, gen.target()), + node.arguments()); + append(new AArch64BreakpointOp(parameters)); + } } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.amd64.test/src/com/oracle/graal/hotspot/amd64/test/AMD64HotSpotFrameOmissionTest.java --- a/graal/com.oracle.graal.hotspot.amd64.test/src/com/oracle/graal/hotspot/amd64/test/AMD64HotSpotFrameOmissionTest.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.amd64.test/src/com/oracle/graal/hotspot/amd64/test/AMD64HotSpotFrameOmissionTest.java Thu Jan 21 14:24:24 2016 -0800 @@ -26,11 +26,11 @@ import java.util.Arrays; -import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.code.InstalledCode; import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterConfig; import jdk.vm.ci.code.TargetDescription; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.meta.JavaKind; import jdk.vm.ci.meta.ResolvedJavaMethod; @@ -127,7 +127,7 @@ } private Register getArgumentRegister(int index, JavaKind kind) { - Register[] regs = getCodeCache().getRegisterConfig().getCallingConventionRegisters(CallingConvention.Type.JavaCall, kind); + Register[] regs = getCodeCache().getRegisterConfig().getCallingConventionRegisters(HotSpotCallingConventionType.JavaCall, kind); return regs[index]; } } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java Thu Jan 21 14:24:24 2016 -0800 @@ -27,7 +27,6 @@ import static jdk.vm.ci.amd64.AMD64.r10; import static jdk.vm.ci.amd64.AMD64.rax; import static jdk.vm.ci.amd64.AMD64.rsp; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCallee; import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.hotspot.HotSpotVMConfig.config; @@ -38,6 +37,7 @@ import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterConfig; import jdk.vm.ci.code.StackSlot; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotVMConfig; import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.ResolvedJavaMethod; @@ -253,7 +253,7 @@ HotSpotProviders providers = getProviders(); if (installedCodeOwner != null && !installedCodeOwner.isStatic()) { crb.recordMark(config.MARKID_UNVERIFIED_ENTRY); - CallingConvention cc = regConfig.getCallingConvention(JavaCallee, null, new JavaType[]{providers.getMetaAccess().lookupJavaType(Object.class)}, getTarget(), false); + CallingConvention cc = regConfig.getCallingConvention(HotSpotCallingConventionType.JavaCallee, null, new JavaType[]{providers.getMetaAccess().lookupJavaType(Object.class)}, getTarget()); Register inlineCacheKlass = rax; // see definition of IC_Klass in // c1_LIRAssembler_x86.cpp Register receiver = asRegister(cc.getArgument(0)); diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java Thu Jan 21 14:24:24 2016 -0800 @@ -34,7 +34,7 @@ import static com.oracle.graal.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32; import static jdk.vm.ci.amd64.AMD64.rax; import static jdk.vm.ci.amd64.AMD64.rdx; -import static jdk.vm.ci.code.CallingConvention.Type.NativeCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall; import static jdk.vm.ci.meta.LocationIdentity.any; import static jdk.vm.ci.meta.Value.ILLEGAL; import jdk.vm.ci.code.CallingConvention; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotNodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotNodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotNodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -34,8 +34,10 @@ import jdk.vm.ci.code.RegisterValue; import jdk.vm.ci.code.StackSlot; import jdk.vm.ci.code.ValueUtil; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod; import jdk.vm.ci.meta.AllocatableValue; +import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.LIRKind; import jdk.vm.ci.meta.Value; @@ -53,8 +55,10 @@ import com.oracle.graal.hotspot.nodes.HotSpotIndirectCallTargetNode; import com.oracle.graal.lir.LIRFrameState; import com.oracle.graal.lir.Variable; +import com.oracle.graal.lir.amd64.AMD64BreakpointOp; import com.oracle.graal.lir.amd64.AMD64Move.CompareAndSwapOp; import com.oracle.graal.lir.gen.LIRGeneratorTool; +import com.oracle.graal.nodes.BreakpointNode; import com.oracle.graal.nodes.CallTargetNode.InvokeKind; import com.oracle.graal.nodes.DirectCallTargetNode; import com.oracle.graal.nodes.FullInfopointNode; @@ -193,4 +197,16 @@ setResult(x, gen.emitMove(raxLocal)); } + + @Override + public void visitBreakpointNode(BreakpointNode node) { + JavaType[] sig = new JavaType[node.arguments().size()]; + for (int i = 0; i < sig.length; i++) { + sig[i] = node.arguments().get(i).stamp().javaType(gen.getMetaAccess()); + } + + Value[] parameters = visitInvokeArguments(gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(HotSpotCallingConventionType.JavaCall, null, sig, gen.target()), + node.arguments()); + append(new AMD64BreakpointOp(parameters)); + } } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java Thu Jan 21 14:24:24 2016 -0800 @@ -23,7 +23,7 @@ package com.oracle.graal.hotspot.amd64; import jdk.vm.ci.code.CallingConvention; -import jdk.vm.ci.code.CallingConvention.Type; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaKind; import jdk.vm.ci.meta.JavaType; @@ -63,8 +63,8 @@ parameterTypes[i] = args.get(i).stamp().javaType(gen.getLIRGeneratorTool().getMetaAccess()); } ResolvedJavaType returnType = stamp().javaType(gen.getLIRGeneratorTool().getMetaAccess()); - CallingConvention cc = generator.getLIRGeneratorTool().getCodeCache().getRegisterConfig().getCallingConvention(Type.NativeCall, returnType, parameterTypes, - generator.getLIRGeneratorTool().target(), false); + CallingConvention cc = generator.getLIRGeneratorTool().getCodeCache().getRegisterConfig().getCallingConvention(HotSpotCallingConventionType.NativeCall, returnType, parameterTypes, + generator.getLIRGeneratorTool().target()); gen.getLIRGeneratorTool().emitCCall(functionPointer.asLong(), cc, parameter, countFloatingTypeArguments(args)); if (this.getStackKind() != JavaKind.Void) { generator.setResult(this, gen.getLIRGeneratorTool().emitMove(cc.getReturn())); diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java Thu Jan 21 14:24:24 2016 -0800 @@ -28,7 +28,6 @@ import static com.oracle.graal.asm.sparc.SPARCAssembler.CC.Xcc; import static com.oracle.graal.asm.sparc.SPARCAssembler.ConditionFlag.NotEqual; import static com.oracle.graal.compiler.common.GraalOptions.ZapStackOnMethodEntry; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCall; import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.code.ValueUtil.isRegister; import static jdk.vm.ci.hotspot.HotSpotVMConfig.config; @@ -46,6 +45,7 @@ import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterConfig; import jdk.vm.ci.code.StackSlot; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotVMConfig; import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.ResolvedJavaMethod; @@ -317,7 +317,8 @@ if (unverifiedStub != null) { crb.recordMark(config.MARKID_UNVERIFIED_ENTRY); // We need to use JavaCall here because we haven't entered the frame yet. - CallingConvention cc = regConfig.getCallingConvention(JavaCall, null, new JavaType[]{getProviders().getMetaAccess().lookupJavaType(Object.class)}, getTarget(), false); + CallingConvention cc = regConfig.getCallingConvention(HotSpotCallingConventionType.JavaCall, null, new JavaType[]{getProviders().getMetaAccess().lookupJavaType(Object.class)}, + getTarget()); Register inlineCacheKlass = g5; // see MacroAssembler::ic_call try (ScratchRegister sc = masm.getScratchRegister()) { diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java Thu Jan 21 14:24:24 2016 -0800 @@ -32,7 +32,7 @@ import static com.oracle.graal.hotspot.HotSpotHostBackend.DEOPTIMIZATION_HANDLER; import static com.oracle.graal.hotspot.HotSpotHostBackend.UNCOMMON_TRAP_HANDLER; import static com.oracle.graal.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32; -import static jdk.vm.ci.code.CallingConvention.Type.NativeCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall; import static jdk.vm.ci.meta.LocationIdentity.any; import static jdk.vm.ci.meta.Value.ILLEGAL; import static jdk.vm.ci.sparc.SPARC.i0; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java Thu Jan 21 14:24:24 2016 -0800 @@ -30,8 +30,10 @@ import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterValue; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod; import jdk.vm.ci.meta.AllocatableValue; +import jdk.vm.ci.meta.JavaType; import jdk.vm.ci.meta.LIRKind; import jdk.vm.ci.meta.Value; import jdk.vm.ci.sparc.SPARCKind; @@ -51,7 +53,9 @@ import com.oracle.graal.lir.LIRFrameState; import com.oracle.graal.lir.Variable; import com.oracle.graal.lir.gen.LIRGeneratorTool; +import com.oracle.graal.lir.sparc.SPARCBreakpointOp; import com.oracle.graal.lir.sparc.SPARCMove.CompareAndSwapOp; +import com.oracle.graal.nodes.BreakpointNode; import com.oracle.graal.nodes.CallTargetNode.InvokeKind; import com.oracle.graal.nodes.DirectCallTargetNode; import com.oracle.graal.nodes.FullInfopointNode; @@ -165,4 +169,16 @@ super.visitFullInfopointNode(i); } } + + @Override + public void visitBreakpointNode(BreakpointNode node) { + JavaType[] sig = new JavaType[node.arguments().size()]; + for (int i = 0; i < sig.length; i++) { + sig[i] = node.arguments().get(i).stamp().javaType(gen.getMetaAccess()); + } + + Value[] parameters = visitInvokeArguments(gen.getResult().getFrameMapBuilder().getRegisterConfig().getCallingConvention(HotSpotCallingConventionType.JavaCall, null, sig, gen.target()), + node.arguments()); + append(new SPARCBreakpointOp(parameters)); + } } diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotForeignCallLinkageImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotForeignCallLinkageImpl.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotForeignCallLinkageImpl.java Thu Jan 21 14:24:24 2016 -0800 @@ -34,6 +34,7 @@ import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterConfig; import jdk.vm.ci.code.TargetDescription; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotForeignCallTarget; import jdk.vm.ci.hotspot.HotSpotProxified; import jdk.vm.ci.meta.AllocatableValue; @@ -110,7 +111,7 @@ CallingConvention outgoingCc = createCallingConvention(metaAccess, codeCache, descriptor, outgoingCcType); CallingConvention incomingCc = incomingCcType == null ? null : createCallingConvention(metaAccess, codeCache, descriptor, incomingCcType); HotSpotForeignCallLinkageImpl linkage = new HotSpotForeignCallLinkageImpl(descriptor, address, effect, transition, outgoingCc, incomingCc, reexecutable, killedLocations); - if (outgoingCcType == Type.NativeCall) { + if (outgoingCcType == HotSpotCallingConventionType.NativeCall) { linkage.temporaries = foreignCalls.getNativeABICallerSaveRegisters(); } return linkage; @@ -129,7 +130,7 @@ TargetDescription target = codeCache.getTarget(); JavaType returnType = asJavaType(descriptor.getResultType(), metaAccess, codeCache); RegisterConfig regConfig = codeCache.getRegisterConfig(); - return regConfig.getCallingConvention(ccType, returnType, parameterTypes, target, false); + return regConfig.getCallingConvention(ccType, returnType, parameterTypes, target); } private static JavaType asJavaType(Class type, MetaAccessProvider metaAccess, CodeCacheProvider codeCache) { diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java Thu Jan 21 14:24:24 2016 -0800 @@ -24,11 +24,10 @@ import static com.oracle.graal.compiler.common.GraalOptions.BootstrapReplacements; import static com.oracle.graal.compiler.common.GraalOptions.Intrinsify; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCallee; import static jdk.vm.ci.code.CodeUtil.getCallingConvention; import static jdk.vm.ci.inittimer.InitTimer.timer; import jdk.vm.ci.code.CallingConvention; -import jdk.vm.ci.code.CallingConvention.Type; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime; import jdk.vm.ci.hotspot.HotSpotVMConfig; import jdk.vm.ci.inittimer.InitTimer; @@ -117,11 +116,12 @@ return stub.getLinkage().getIncomingCallingConvention(); } - CallingConvention cc = getCallingConvention(getCodeCache(), Type.JavaCallee, graph.method(), false); + CallingConvention cc = getCallingConvention(getCodeCache(), HotSpotCallingConventionType.JavaCallee, graph.method()); if (graph.getEntryBCI() != JVMCICompiler.INVOCATION_ENTRY_BCI) { // for OSR, only a pointer is passed to the method. JavaType[] parameterTypes = new JavaType[]{getMetaAccess().lookupJavaType(long.class)}; - CallingConvention tmp = getCodeCache().getRegisterConfig().getCallingConvention(JavaCallee, getMetaAccess().lookupJavaType(void.class), parameterTypes, getTarget(), false); + CallingConvention tmp = getCodeCache().getRegisterConfig().getCallingConvention(HotSpotCallingConventionType.JavaCallee, getMetaAccess().lookupJavaType(void.class), parameterTypes, + getTarget()); cc = new CallingConvention(cc.getStackSize(), cc.getReturn(), tmp.getArgument(0)); } return cc; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Thu Jan 21 14:24:24 2016 -0800 @@ -39,9 +39,9 @@ import java.lang.ref.Reference; -import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.code.TargetDescription; import jdk.vm.ci.common.JVMCIError; +import jdk.vm.ci.hotspot.HotSpotCallingConventionType; import jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider; import jdk.vm.ci.hotspot.HotSpotResolvedJavaField; import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod; @@ -389,7 +389,7 @@ ReadNode compiledEntry = graph.add(new ReadNode(address, any(), StampFactory.forKind(wordKind), BarrierType.NONE)); loweredCallTarget = graph.add(new HotSpotIndirectCallTargetNode(metaspaceMethod, compiledEntry, parameters, invoke.asNode().stamp(), signature, callTarget.targetMethod(), - CallingConvention.Type.JavaCall, callTarget.invokeKind())); + HotSpotCallingConventionType.JavaCall, callTarget.invokeKind())); graph.addBeforeFixed(invoke.asNode(), metaspaceMethod); graph.addAfterFixed(metaspaceMethod, compiledEntry); @@ -397,7 +397,7 @@ } if (loweredCallTarget == null) { - loweredCallTarget = graph.add(new HotSpotDirectCallTargetNode(parameters, invoke.asNode().stamp(), signature, callTarget.targetMethod(), CallingConvention.Type.JavaCall, + loweredCallTarget = graph.add(new HotSpotDirectCallTargetNode(parameters, invoke.asNode().stamp(), signature, callTarget.targetMethod(), HotSpotCallingConventionType.JavaCall, callTarget.invokeKind())); } callTarget.replaceAndDelete(loweredCallTarget); diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotForeignCallsProviderImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotForeignCallsProviderImpl.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotForeignCallsProviderImpl.java Thu Jan 21 14:24:24 2016 -0800 @@ -24,8 +24,8 @@ import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.PRESERVES_REGISTERS; import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.Transition.SAFEPOINT; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCall; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCallee; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee; import java.util.HashMap; import java.util.Map; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java Thu Jan 21 14:24:24 2016 -0800 @@ -30,9 +30,9 @@ import static com.oracle.graal.compiler.target.Backend.ARITHMETIC_SIN; import static com.oracle.graal.compiler.target.Backend.ARITHMETIC_TAN; import static com.oracle.graal.hotspot.HotSpotBackend.DECRYPT; -import static com.oracle.graal.hotspot.HotSpotBackend.DECRYPT_WITH_ORIGINAL_KEY; import static com.oracle.graal.hotspot.HotSpotBackend.DECRYPT_BLOCK; import static com.oracle.graal.hotspot.HotSpotBackend.DECRYPT_BLOCK_WITH_ORIGINAL_KEY; +import static com.oracle.graal.hotspot.HotSpotBackend.DECRYPT_WITH_ORIGINAL_KEY; import static com.oracle.graal.hotspot.HotSpotBackend.ENCRYPT; import static com.oracle.graal.hotspot.HotSpotBackend.ENCRYPT_BLOCK; import static com.oracle.graal.hotspot.HotSpotBackend.EXCEPTION_HANDLER; @@ -81,7 +81,7 @@ import static com.oracle.graal.replacements.Log.LOG_OBJECT; import static com.oracle.graal.replacements.Log.LOG_PRIMITIVE; import static com.oracle.graal.replacements.Log.LOG_PRINTF; -import static jdk.vm.ci.code.CallingConvention.Type.NativeCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall; import java.util.EnumMap; import java.util.HashMap; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ForeignCallStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ForeignCallStub.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ForeignCallStub.java Thu Jan 21 14:24:24 2016 -0800 @@ -24,9 +24,9 @@ import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.DESTROYS_REGISTERS; import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.RegisterEffect.PRESERVES_REGISTERS; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCall; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCallee; -import static jdk.vm.ci.code.CallingConvention.Type.NativeCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall; import jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider; import jdk.vm.ci.hotspot.HotSpotSignature; import jdk.vm.ci.meta.JavaKind; diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.truffle.hotspot.amd64/src/com/oracle/graal/truffle/hotspot/amd64/AMD64OptimizedCallTargetInstrumentationFactory.java --- a/graal/com.oracle.graal.truffle.hotspot.amd64/src/com/oracle/graal/truffle/hotspot/amd64/AMD64OptimizedCallTargetInstrumentationFactory.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.truffle.hotspot.amd64/src/com/oracle/graal/truffle/hotspot/amd64/AMD64OptimizedCallTargetInstrumentationFactory.java Thu Jan 21 14:24:24 2016 -0800 @@ -22,8 +22,8 @@ */ package com.oracle.graal.truffle.hotspot.amd64; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; import jdk.vm.ci.amd64.AMD64; -import jdk.vm.ci.code.CallingConvention.Type; import jdk.vm.ci.code.CodeCacheProvider; import jdk.vm.ci.code.InstalledCode; import jdk.vm.ci.code.Register; @@ -54,7 +54,7 @@ protected void injectTailCallCode() { @SuppressWarnings("hiding") AMD64MacroAssembler asm = (AMD64MacroAssembler) this.asm; - Register thisRegister = codeCache.getRegisterConfig().getCallingConventionRegisters(Type.JavaCall, JavaKind.Object)[0]; + Register thisRegister = codeCache.getRegisterConfig().getCallingConventionRegisters(JavaCall, JavaKind.Object)[0]; Register spillRegister = AMD64.r10; // TODO(mg): fix me Label doProlog = new Label(); diff -r f868bd0c3f02 -r 9306a9611097 graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java --- a/graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Thu Jan 21 10:35:29 2016 -0800 +++ b/graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Thu Jan 21 14:24:24 2016 -0800 @@ -25,7 +25,7 @@ import static com.oracle.graal.asm.sparc.SPARCAssembler.BranchPredict.PREDICT_NOT_TAKEN; import static com.oracle.graal.asm.sparc.SPARCAssembler.CC.Xcc; import static com.oracle.graal.asm.sparc.SPARCAssembler.ConditionFlag.Equal; -import static jdk.vm.ci.code.CallingConvention.Type.JavaCall; +import static jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall; import static jdk.vm.ci.meta.JavaKind.Object; import jdk.vm.ci.code.CodeCacheProvider; import jdk.vm.ci.code.InstalledCode; diff -r f868bd0c3f02 -r 9306a9611097 mx.graal/suite.py --- a/mx.graal/suite.py Thu Jan 21 10:35:29 2016 -0800 +++ b/mx.graal/suite.py Thu Jan 21 14:24:24 2016 -0800 @@ -39,7 +39,7 @@ { "name" : "jvmci", "optional" : "true", - "version" : "bf8a5a6861b1f17bcbeb5802bd1c37402483444e", + "version" : "d63506bb523746d86ea2d27ffdd2cded1b04ae4a", "urls" : [ {"url" : "http://lafo.ssw.uni-linz.ac.at/hg/graal-jvmci-8", "kind" : "hg"}, {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"},