src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/vector/AMD64VectorCompareOp.java
changeset 59095 03fbcd06b4c0
parent 58299 6df94ce3ab2f
equal deleted inserted replaced
59094:5d4c3724e4c7 59095:03fbcd06b4c0
    33 import org.graalvm.compiler.asm.amd64.AMD64Assembler.VexRMOp;
    33 import org.graalvm.compiler.asm.amd64.AMD64Assembler.VexRMOp;
    34 import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler;
    34 import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler;
    35 import org.graalvm.compiler.asm.amd64.AVXKind.AVXSize;
    35 import org.graalvm.compiler.asm.amd64.AVXKind.AVXSize;
    36 import org.graalvm.compiler.lir.LIRInstructionClass;
    36 import org.graalvm.compiler.lir.LIRInstructionClass;
    37 import org.graalvm.compiler.lir.Opcode;
    37 import org.graalvm.compiler.lir.Opcode;
    38 import org.graalvm.compiler.lir.amd64.AMD64LIRInstruction;
       
    39 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    38 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    40 
    39 
    41 import jdk.vm.ci.meta.AllocatableValue;
    40 import jdk.vm.ci.meta.AllocatableValue;
    42 
    41 
    43 public final class AMD64VectorCompareOp extends AMD64LIRInstruction {
    42 public final class AMD64VectorCompareOp extends AMD64VectorInstruction {
    44     public static final LIRInstructionClass<AMD64VectorCompareOp> TYPE = LIRInstructionClass.create(AMD64VectorCompareOp.class);
    43     public static final LIRInstructionClass<AMD64VectorCompareOp> TYPE = LIRInstructionClass.create(AMD64VectorCompareOp.class);
    45 
    44 
    46     @Opcode private final VexRMOp opcode;
    45     @Opcode private final VexRMOp opcode;
    47     private final AVXSize size;
       
    48     @Use({REG}) protected AllocatableValue x;
    46     @Use({REG}) protected AllocatableValue x;
    49     @Use({REG, STACK}) protected AllocatableValue y;
    47     @Use({REG, STACK}) protected AllocatableValue y;
    50 
    48 
    51     public AMD64VectorCompareOp(VexRMOp opcode, AllocatableValue x, AllocatableValue y) {
    49     public AMD64VectorCompareOp(VexRMOp opcode, AllocatableValue x, AllocatableValue y) {
    52         this(opcode, AVXSize.XMM, x, y);
    50         this(opcode, AVXSize.XMM, x, y);
    53     }
    51     }
    54 
    52 
    55     public AMD64VectorCompareOp(VexRMOp opcode, AVXSize size, AllocatableValue x, AllocatableValue y) {
    53     public AMD64VectorCompareOp(VexRMOp opcode, AVXSize size, AllocatableValue x, AllocatableValue y) {
    56         super(TYPE);
    54         super(TYPE, size);
    57         this.opcode = opcode;
    55         this.opcode = opcode;
    58         this.size = size;
       
    59         this.x = x;
    56         this.x = x;
    60         this.y = y;
    57         this.y = y;
    61     }
    58     }
    62 
    59 
    63     @Override
    60     @Override