Enum Class FloatNotEqualOpGen

java.lang.Object
java.lang.Enum<FloatNotEqualOpGen>
ghidra.pcode.emu.jit.gen.op.FloatNotEqualOpGen
All Implemented Interfaces:
BinOpGen<JitFloatNotEqualOp>, FloatCompareBinOpGen<JitFloatNotEqualOp>, OpGen<JitFloatNotEqualOp>, Serializable, Comparable<FloatNotEqualOpGen>, Constable

public enum FloatNotEqualOpGen extends Enum<FloatNotEqualOpGen> implements FloatCompareBinOpGen<JitFloatNotEqualOp>
The generator for a float_notequal.

This uses the float comparison operator generator and simply emits fcmpl or dcmpl depending on the type and then ifne.

  • Enum Constant Details

  • Method Details

    • values

      public static FloatNotEqualOpGen[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static FloatNotEqualOpGen valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • opForFloatCmp

      public <N2 extends Emitter.Next, N1 extends Emitter.Ent<N2, Types.TFloat>, N0 extends Emitter.Ent<N1, Types.TFloat>> Emitter<Emitter.Ent<N2,Types.TInt>> opForFloatCmp(Emitter<N0> em)
      Description copied from interface: FloatCompareBinOpGen
      Emit the JVM bytecode to perform the comparison with float operands on the stack.

      The result should be as defined by Comparator.compare(Object, Object).

      Specified by:
      opForFloatCmp in interface FloatCompareBinOpGen<JitFloatNotEqualOp>
      Type Parameters:
      N2 - the tail of the incoming stack
      N1 - the tail of the incoming stack including the right operand
      N0 - the incoming stack with the right and left operands on top
      Parameters:
      em - the emitter typed with the incoming stack
      Returns:
      the emitter typed with the resulting stack, i.e., the tail with the result pushed
    • opForDoubleCmp

      public <N2 extends Emitter.Next, N1 extends Emitter.Ent<N2, Types.TDouble>, N0 extends Emitter.Ent<N1, Types.TDouble>> Emitter<Emitter.Ent<N2,Types.TInt>> opForDoubleCmp(Emitter<N0> em)
      Description copied from interface: FloatCompareBinOpGen
      Emit the JVM bytecode to perform the comparison with double operands on the stack.

      The result should be as defined by Comparator.compare(Object, Object).

      Specified by:
      opForDoubleCmp in interface FloatCompareBinOpGen<JitFloatNotEqualOp>
      Type Parameters:
      N2 - the tail of the incoming stack
      N1 - the tail of the incoming stack including the right operand
      N0 - the incoming stack with the right and left operands on top
      Parameters:
      em - the emitter typed with the incoming stack
      Returns:
      the emitter typed with the resulting stack, i.e., the tail with the result pushed
    • opForCondJump

      public <N1 extends Emitter.Next, N0 extends Emitter.Ent<N1, Types.TInt>> Lbl.LblEm<N1,N1> opForCondJump(Emitter<N0> em)
      Description copied from interface: FloatCompareBinOpGen
      Emit the JVM opcode to perform the conditional jump.

      The condition should correspond to the true case of the p-code operator.

      Specified by:
      opForCondJump in interface FloatCompareBinOpGen<JitFloatNotEqualOp>
      Type Parameters:
      N1 - the tail of the incoming stack
      N0 - the incoming stack including the comparison result
      Parameters:
      em - the emitter typed with the incoming stack
      Returns:
      the target label and emitter typed with the resulting stack, i.e., with the comparison result popped