< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64LIRGenerator.java

Print this page
rev 52509 : [mq]: graal

*** 59,68 **** --- 59,69 ---- import org.graalvm.compiler.lir.aarch64.AArch64AtomicMove.AtomicReadAndAddLSEOp; import org.graalvm.compiler.lir.aarch64.AArch64AtomicMove.CompareAndSwapOp; import org.graalvm.compiler.lir.aarch64.AArch64AtomicMove.AtomicReadAndWriteOp; import org.graalvm.compiler.lir.aarch64.AArch64Move.MembarOp; import org.graalvm.compiler.lir.aarch64.AArch64PauseOp; + import org.graalvm.compiler.lir.aarch64.AArch64SpeculativeBarrier; import org.graalvm.compiler.lir.gen.LIRGenerationResult; import org.graalvm.compiler.lir.gen.LIRGenerator; import org.graalvm.compiler.phases.util.Providers; import jdk.vm.ci.aarch64.AArch64;
*** 463,475 **** emitMove(result, res); return result; } @Override ! public Variable emitArrayEquals(JavaKind kind, Value array1, Value array2, Value length) { Variable result = newVariable(LIRKind.value(AArch64Kind.DWORD)); ! append(new AArch64ArrayEqualsOp(this, kind, result, array1, array2, asAllocatable(length))); return result; } @Override protected JavaConstant zapValueForKind(PlatformKind kind) { --- 464,476 ---- emitMove(result, res); return result; } @Override ! public Variable emitArrayEquals(JavaKind kind, Value array1, Value array2, Value length, int constantLength, boolean directPointers) { Variable result = newVariable(LIRKind.value(AArch64Kind.DWORD)); ! append(new AArch64ArrayEqualsOp(this, kind, result, array1, array2, asAllocatable(length), directPointers)); return result; } @Override protected JavaConstant zapValueForKind(PlatformKind kind) {
*** 511,516 **** --- 512,522 ---- public void emitPause() { append(new AArch64PauseOp()); } public abstract void emitCCall(long address, CallingConvention nativeCallingConvention, Value[] args); + + @Override + public void emitSpeculationFence() { + append(new AArch64SpeculativeBarrier()); + } }
< prev index next >