< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Call.java

Print this page

        

*** 38,47 **** --- 38,48 ---- import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler; import org.graalvm.compiler.core.common.spi.ForeignCallLinkage; import org.graalvm.compiler.lir.LIRFrameState; import org.graalvm.compiler.lir.LIRInstructionClass; import org.graalvm.compiler.lir.Opcode; + import org.graalvm.compiler.lir.StandardOp.LabelHoldingOp; import org.graalvm.compiler.lir.asm.CompilationResultBuilder; import jdk.vm.ci.code.Register; import jdk.vm.ci.meta.InvokeTarget; import jdk.vm.ci.meta.ResolvedJavaMethod;
*** 124,134 **** public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) { directCall(crb, masm, callTarget, null, state); } } ! public abstract static class ForeignCallOp extends CallOp { protected final ForeignCallLinkage callTarget; protected final Label label; protected ForeignCallOp(LIRInstructionClass<? extends ForeignCallOp> c, ForeignCallLinkage callTarget, Value result, Value[] parameters, Value[] temps, LIRFrameState state, Label label) { super(c, result, parameters, temps, state); --- 125,135 ---- public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) { directCall(crb, masm, callTarget, null, state); } } ! public abstract static class ForeignCallOp extends CallOp implements LabelHoldingOp { protected final ForeignCallLinkage callTarget; protected final Label label; protected ForeignCallOp(LIRInstructionClass<? extends ForeignCallOp> c, ForeignCallLinkage callTarget, Value result, Value[] parameters, Value[] temps, LIRFrameState state, Label label) { super(c, result, parameters, temps, state);
*** 145,154 **** --- 146,160 ---- public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) { emitCall(crb, masm); } protected abstract void emitCall(CompilationResultBuilder crb, AArch64MacroAssembler masm); + + @Override + public Label getLabel() { + return label; + } } @Opcode("NEAR_FOREIGN_CALL") public static class DirectNearForeignCallOp extends ForeignCallOp { public static final LIRInstructionClass<DirectNearForeignCallOp> TYPE = LIRInstructionClass.create(DirectNearForeignCallOp.class);
< prev index next >