hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRInstruction.java
changeset 46459 7d4e637d3f21
parent 46344 694c102fd8ed
child 46536 79d8dffda212
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRInstruction.java	Fri May 12 13:14:25 2017 -0700
+++ b/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRInstruction.java	Fri May 12 13:56:13 2017 -0700
@@ -47,6 +47,9 @@
 import org.graalvm.compiler.debug.Debug;
 import org.graalvm.compiler.debug.DebugCounter;
 import org.graalvm.compiler.graph.NodeSourcePosition;
+import org.graalvm.compiler.lir.StandardOp.LoadConstantOp;
+import org.graalvm.compiler.lir.StandardOp.MoveOp;
+import org.graalvm.compiler.lir.StandardOp.ValueMoveOp;
 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
 
 import jdk.vm.ci.code.RegisterValue;
@@ -349,6 +352,38 @@
         return instructionClass.forEachRegisterHint(this, mode, proc);
     }
 
+    // Checkstyle: stop
+    /**
+     * Returns {@code true} if the instruction is a {@link MoveOp}.
+     *
+     * This function is preferred to {@code instanceof MoveOp} since the type check is more
+     * expensive than reading a field from {@link LIRInstructionClass}.
+     */
+    public final boolean isMoveOp() {
+        return instructionClass.isMoveOp();
+    }
+
+    /**
+     * Returns {@code true} if the instruction is a {@link ValueMoveOp}.
+     *
+     * This function is preferred to {@code instanceof ValueMoveOp} since the type check is more
+     * expensive than reading a field from {@link LIRInstructionClass}.
+     */
+    public final boolean isValueMoveOp() {
+        return instructionClass.isValueMoveOp();
+    }
+
+    /**
+     * Returns {@code true} if the instruction is a {@link LoadConstantOp}.
+     *
+     * This function is preferred to {@code instanceof LoadConstantOp} since the type check is more
+     * expensive than reading a field from {@link LIRInstructionClass}.
+     */
+    public final boolean isLoadConstantOp() {
+        return instructionClass.isLoadConstantOp();
+    }
+    // Checkstyle: resume
+
     /**
      * Utility method to add stack arguments to a list of temporaries. Useful for modeling calling
      * conventions that kill outgoing argument space.