Enum Class IntSRightOpGen

java.lang.Object
java.lang.Enum<IntSRightOpGen>
ghidra.pcode.emu.jit.gen.op.IntSRightOpGen
All Implemented Interfaces:
BinOpGen<JitIntSRightOp>, OpGen<JitIntSRightOp>, ShiftIntBinOpGen<JitIntSRightOp>, Serializable, Comparable<IntSRightOpGen>, Constable, org.objectweb.asm.Opcodes

public enum IntSRightOpGen extends Enum<IntSRightOpGen> implements ShiftIntBinOpGen<JitIntSRightOp>
The generator for a int_sright.

This uses the integer shift operator generator and simply invokes JitCompiledPassage.intSRight(int, int), etc. depending on the types.

  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    The generator singleton
  • Field Summary

    Fields inherited from interface org.objectweb.asm.Opcodes

    AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V9
  • Method Summary

    Modifier and Type
    Method
    Description
    afterLeft(JitCodeGenerator gen, JitIntSRightOp op, JitType lType, JitType rType, org.objectweb.asm.MethodVisitor rv)
    Emit code between reading the left and right operands
    The name of the static method in JitCompiledPassage to invoke
    Returns the enum constant of this class with the specified name.
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface ghidra.pcode.emu.jit.gen.op.BinOpGen

    generateRunCode

    Methods inherited from interface ghidra.pcode.emu.jit.gen.op.OpGen

    generateInitCode

    Methods inherited from interface ghidra.pcode.emu.jit.gen.op.ShiftIntBinOpGen

    generateBinOpRunCode
  • Enum Constant Details

    • GEN

      public static final IntSRightOpGen GEN
      The generator singleton
  • Method Details

    • values

      public static IntSRightOpGen[] 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 IntSRightOpGen 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
    • methodName

      public String methodName()
      Description copied from interface: ShiftIntBinOpGen
      The name of the static method in JitCompiledPassage to invoke
      Specified by:
      methodName in interface ShiftIntBinOpGen<JitIntSRightOp>
      Returns:
      the name
    • afterLeft

      public JitType afterLeft(JitCodeGenerator gen, JitIntSRightOp op, JitType lType, JitType rType, org.objectweb.asm.MethodVisitor rv)
      Description copied from interface: BinOpGen
      Emit code between reading the left and right operands

      This is invoked immediately after emitting code to push the left operand onto the stack, giving the implementation an opportunity to perform any manipulations of that operand necessary to set up the operation, before code to push the right operand is emitted.

      Specified by:
      afterLeft in interface BinOpGen<JitIntSRightOp>
      Parameters:
      gen - the code generator
      op - the operator
      lType - the actual type of the left operand
      rType - the actual type of the right operand
      rv - the method visitor
      Returns:
      the new actual type of the left operand