< prev index next >

test/compiler/jvmci/code/TestAssembler.java

Print this page

        

@@ -30,23 +30,26 @@
 
 import jdk.vm.ci.code.CodeCacheProvider;
 import jdk.vm.ci.code.DebugInfo;
 import jdk.vm.ci.code.Register;
 import jdk.vm.ci.code.StackSlot;
+import jdk.vm.ci.code.site.Call;
 import jdk.vm.ci.code.site.ConstantReference;
 import jdk.vm.ci.code.site.DataPatch;
 import jdk.vm.ci.code.site.DataSectionReference;
 import jdk.vm.ci.code.site.Infopoint;
 import jdk.vm.ci.code.site.InfopointReason;
+import jdk.vm.ci.code.site.Mark;
 import jdk.vm.ci.code.site.Reference;
 import jdk.vm.ci.code.site.Site;
 import jdk.vm.ci.hotspot.HotSpotCompiledCode;
 import jdk.vm.ci.hotspot.HotSpotCompiledCode.Comment;
 import jdk.vm.ci.hotspot.HotSpotCompiledNmethod;
 import jdk.vm.ci.hotspot.HotSpotConstant;
 import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
 import jdk.vm.ci.meta.Assumptions.Assumption;
+import jdk.vm.ci.meta.InvokeTarget;
 import jdk.vm.ci.meta.LIRKind;
 import jdk.vm.ci.meta.PlatformKind;
 import jdk.vm.ci.meta.ResolvedJavaMethod;
 import jdk.vm.ci.meta.VMConstant;
 

@@ -59,10 +62,15 @@
      * Emit the method prologue code (e.g. building the new stack frame).
      */
     public abstract void emitPrologue();
 
     /**
+     * Emit the method epilogue code (e.g. the deopt handler).
+     */
+    public abstract void emitEpilogue();
+
+    /**
      * Emit code to grow the stack frame.
      *
      * @param size the size in bytes that the stack should grow
      */
     public abstract void emitGrowStack(int size);

@@ -220,10 +228,18 @@
 
     protected void setDeoptRescueSlot(StackSlot deoptRescue) {
         this.deoptRescue = deoptRescue;
     }
 
+    protected void recordCall(InvokeTarget target, int size, boolean direct, DebugInfo debugInfo) {
+        sites.add(new Call(target, code.position(), size, direct, debugInfo));
+    }
+
+    protected void recordMark(Object id) {
+        sites.add(new Mark(code.position(), id));
+    }
+
     protected void recordImplicitException(DebugInfo info) {
         sites.add(new Infopoint(code.position(), info, InfopointReason.IMPLICIT_EXCEPTION));
     }
 
     protected void recordDataPatchInCode(Reference ref) {
< prev index next >