--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64PrefetchOp.java 2017-07-07 09:30:35.000000000 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64PrefetchOp.java 2017-07-07 09:30:34.000000000 -0700 @@ -25,6 +25,7 @@ import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.COMPOSITE; +import org.graalvm.compiler.asm.aarch64.AArch64Assembler.PrefetchMode; import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler; import org.graalvm.compiler.lir.LIRInstructionClass; import org.graalvm.compiler.lir.asm.CompilationResultBuilder; @@ -32,18 +33,18 @@ public final class AArch64PrefetchOp extends AArch64LIRInstruction { public static final LIRInstructionClass TYPE = LIRInstructionClass.create(AArch64PrefetchOp.class); - @SuppressWarnings("unused") private final int instr; // AllocatePrefetchInstr + private final PrefetchMode mode; // AllocatePrefetchInstr @Alive({COMPOSITE}) protected AArch64AddressValue address; - public AArch64PrefetchOp(AArch64AddressValue address, int instr) { + public AArch64PrefetchOp(AArch64AddressValue address, PrefetchMode mode) { super(TYPE); this.address = address; - this.instr = instr; + this.mode = mode; } @Override public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) { - // TODO implement prefetch - masm.nop(); + // instr gets ignored! + masm.prfm(address.toAddress(), mode); } }