# HG changeset patch # User Josef Eisl # Date 1432734371 -7200 # Node ID 3de3699ecac1a330487364903e811be00782ae4d # Parent cc9e15bbbd3cfa3797df28e31c8d8bef5de63c66 Encapsulate AMD64HotSpotLIRGenerator#saveRbp. diff -r cc9e15bbbd3c -r 3de3699ecac1 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java Fri May 29 12:08:54 2015 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java Wed May 27 15:46:11 2015 +0200 @@ -22,24 +22,13 @@ */ package com.oracle.graal.hotspot.amd64; -import com.oracle.jvmci.code.CallingConvention; -import com.oracle.jvmci.code.StackSlot; -import com.oracle.jvmci.code.ValueUtil; -import com.oracle.jvmci.meta.ResolvedJavaField; -import com.oracle.jvmci.meta.ResolvedJavaType; -import com.oracle.jvmci.meta.Value; -import com.oracle.jvmci.meta.LIRKind; -import com.oracle.jvmci.meta.JavaConstant; -import com.oracle.jvmci.meta.Signature; -import com.oracle.jvmci.meta.ResolvedJavaMethod; -import com.oracle.jvmci.meta.Kind; import static com.oracle.graal.amd64.AMD64.*; import com.oracle.graal.compiler.gen.*; -import com.oracle.graal.hotspot.amd64.AMD64HotSpotLIRGenerator.SaveRbp; -import com.oracle.graal.lir.StandardOp.NoOp; import com.oracle.graal.lir.gen.*; +import com.oracle.jvmci.code.*; import com.oracle.jvmci.hotspot.*; +import com.oracle.jvmci.meta.*; public class AMD64HotSpotBytecodeLIRBuilder extends BytecodeLIRBuilder { @@ -51,14 +40,6 @@ return (AMD64HotSpotLIRGenerator) gen; } - private SaveRbp getSaveRbp() { - return getGen().saveRbp; - } - - private void setSaveRbp(SaveRbp saveRbp) { - getGen().saveRbp = saveRbp; - } - @Override public void emitPrologue(ResolvedJavaMethod method) { CallingConvention incomingArguments = gen.getCallingConvention(); @@ -77,8 +58,7 @@ gen.emitIncomingValues(params); - setSaveRbp(((AMD64HotSpotLIRGenerator) gen).new SaveRbp(new NoOp(gen.getCurrentBlock(), gen.getResult().getLIR().getLIRforBlock(gen.getCurrentBlock()).size()))); - gen.append(getSaveRbp().placeholder); + getGen().emitSaveRbp(); Signature sig = method.getSignature(); boolean isStatic = method.isStatic(); diff -r cc9e15bbbd3c -r 3de3699ecac1 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 Fri May 29 12:08:54 2015 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Wed May 27 15:46:11 2015 +0200 @@ -131,7 +131,17 @@ } } - SaveRbp saveRbp; + private SaveRbp saveRbp; + + protected void emitSaveRbp() { + NoOp placeholder = new NoOp(getCurrentBlock(), getResult().getLIR().getLIRforBlock(getCurrentBlock()).size()); + append(placeholder); + saveRbp = new SaveRbp(placeholder); + } + + protected SaveRbp getSaveRbp() { + return saveRbp; + } /** * Helper instruction to reserve a stack slot for the whole method. Note that the actual users diff -r cc9e15bbbd3c -r 3de3699ecac1 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 Fri May 29 12:08:54 2015 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotNodeLIRBuilder.java Wed May 27 15:46:11 2015 +0200 @@ -22,22 +22,10 @@ */ package com.oracle.graal.hotspot.amd64; -import com.oracle.jvmci.code.RegisterValue; -import com.oracle.jvmci.code.BytecodeFrame; -import com.oracle.jvmci.code.Register; -import com.oracle.jvmci.code.ForeignCallLinkage; -import com.oracle.jvmci.code.CallingConvention; -import com.oracle.jvmci.code.StackSlot; -import com.oracle.jvmci.code.ValueUtil; -import com.oracle.jvmci.meta.Value; -import com.oracle.jvmci.meta.LIRKind; -import com.oracle.jvmci.meta.PlatformKind; -import com.oracle.jvmci.meta.AllocatableValue; -import com.oracle.jvmci.meta.Kind; import static com.oracle.graal.amd64.AMD64.*; -import static com.oracle.jvmci.code.ValueUtil.*; import static com.oracle.graal.asm.amd64.AMD64Assembler.AMD64BinaryArithmetic.*; import static com.oracle.graal.hotspot.HotSpotBackend.*; +import static com.oracle.jvmci.code.ValueUtil.*; import com.oracle.graal.amd64.*; import com.oracle.graal.asm.*; @@ -51,11 +39,9 @@ import com.oracle.graal.compiler.match.*; import com.oracle.graal.graph.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.amd64.AMD64HotSpotLIRGenerator.SaveRbp; import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.hotspot.nodes.type.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.StandardOp.NoOp; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.amd64.AMD64Move.CompareAndSwapOp; import com.oracle.graal.lir.gen.*; @@ -64,8 +50,10 @@ import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.memory.*; +import com.oracle.jvmci.code.*; import com.oracle.jvmci.debug.*; import com.oracle.jvmci.hotspot.*; +import com.oracle.jvmci.meta.*; /** * LIR generator specialized for AMD64 HotSpot. @@ -113,14 +101,6 @@ return (AMD64HotSpotLIRGenerator) gen; } - private SaveRbp getSaveRbp() { - return getGen().saveRbp; - } - - private void setSaveRbp(SaveRbp saveRbp) { - getGen().saveRbp = saveRbp; - } - @Override protected DebugInfoBuilder createDebugInfoBuilder(StructuredGraph graph, NodeMap nodeOperands) { HotSpotLockStack lockStack = new HotSpotLockStack(gen.getResult().getFrameMapBuilder(), LIRKind.value(Kind.Long)); @@ -146,8 +126,7 @@ gen.emitIncomingValues(params); - setSaveRbp(((AMD64HotSpotLIRGenerator) gen).new SaveRbp(new NoOp(gen.getCurrentBlock(), gen.getResult().getLIR().getLIRforBlock(gen.getCurrentBlock()).size()))); - append(getSaveRbp().placeholder); + getGen().emitSaveRbp(); for (ParameterNode param : graph.getNodes(ParameterNode.TYPE)) { Value paramValue = params[param.index()];