hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64PrefetchOp.java
changeset 46640 70bdce04c59b
parent 43972 1ade39b8381b
equal deleted inserted replaced
46638:3c5c50af29a7 46640:70bdce04c59b
    23 
    23 
    24 package org.graalvm.compiler.lir.aarch64;
    24 package org.graalvm.compiler.lir.aarch64;
    25 
    25 
    26 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.COMPOSITE;
    26 import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.COMPOSITE;
    27 
    27 
       
    28 import org.graalvm.compiler.asm.aarch64.AArch64Assembler.PrefetchMode;
    28 import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler;
    29 import org.graalvm.compiler.asm.aarch64.AArch64MacroAssembler;
    29 import org.graalvm.compiler.lir.LIRInstructionClass;
    30 import org.graalvm.compiler.lir.LIRInstructionClass;
    30 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    31 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    31 
    32 
    32 public final class AArch64PrefetchOp extends AArch64LIRInstruction {
    33 public final class AArch64PrefetchOp extends AArch64LIRInstruction {
    33     public static final LIRInstructionClass<AArch64PrefetchOp> TYPE = LIRInstructionClass.create(AArch64PrefetchOp.class);
    34     public static final LIRInstructionClass<AArch64PrefetchOp> TYPE = LIRInstructionClass.create(AArch64PrefetchOp.class);
    34 
    35 
    35     @SuppressWarnings("unused") private final int instr;  // AllocatePrefetchInstr
    36     private final PrefetchMode mode;  // AllocatePrefetchInstr
    36     @Alive({COMPOSITE}) protected AArch64AddressValue address;
    37     @Alive({COMPOSITE}) protected AArch64AddressValue address;
    37 
    38 
    38     public AArch64PrefetchOp(AArch64AddressValue address, int instr) {
    39     public AArch64PrefetchOp(AArch64AddressValue address, PrefetchMode mode) {
    39         super(TYPE);
    40         super(TYPE);
    40         this.address = address;
    41         this.address = address;
    41         this.instr = instr;
    42         this.mode = mode;
    42     }
    43     }
    43 
    44 
    44     @Override
    45     @Override
    45     public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) {
    46     public void emitCode(CompilationResultBuilder crb, AArch64MacroAssembler masm) {
    46         // TODO implement prefetch
    47         // instr gets ignored!
    47         masm.nop();
    48         masm.prfm(address.toAddress(), mode);
    48     }
    49     }
    49 }
    50 }