< 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 >