< prev index next >
test/compiler/jvmci/code/sparc/SPARCTestAssembler.java
Print this page
*** 30,40 ****
--- 30,42 ----
import jdk.vm.ci.code.site.ConstantReference;
import jdk.vm.ci.code.site.DataSectionReference;
import jdk.vm.ci.hotspot.HotSpotCallingConventionType;
import jdk.vm.ci.hotspot.HotSpotCompiledCode;
import jdk.vm.ci.hotspot.HotSpotConstant;
+ import jdk.vm.ci.hotspot.HotSpotForeignCallTarget;
import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
+ import jdk.vm.ci.hotspot.HotSpotVMConfig;
import jdk.vm.ci.meta.JavaKind;
import jdk.vm.ci.meta.LIRKind;
import jdk.vm.ci.meta.VMConstant;
import jdk.vm.ci.sparc.SPARC;
import jdk.vm.ci.sparc.SPARCKind;
*** 70,79 ****
--- 72,89 ----
emitOp3(0b10, SPARC.sp, 0b111100, SPARC.sp, -SPARC.REGISTER_SAFE_AREA_SIZE); // SAVE sp, -128, sp
setDeoptRescueSlot(newStackSlot(LIRKind.value(SPARCKind.XWORD)));
}
@Override
+ public void emitEpilogue() {
+ HotSpotVMConfig config = HotSpotVMConfig.config();
+ recordMark(config.MARKID_DEOPT_HANDLER_ENTRY);
+ recordCall(new HotSpotForeignCallTarget(config.handleDeoptStub), 4, true, null);
+ code.emitInt(1 << 30); // CALL
+ }
+
+ @Override
public HotSpotCompiledCode finish(HotSpotResolvedJavaMethod method) {
frameSize += SPARC.REGISTER_SAFE_AREA_SIZE;
return super.finish(method);
}
< prev index next >