Class CodeBlock

java.lang.Object
me.qmx.jitescript.CodeBlock
All Implemented Interfaces:
org.objectweb.asm.Opcodes

public class CodeBlock extends Object implements org.objectweb.asm.Opcodes
  • Field Details

    • instructionList

      private final org.objectweb.asm.tree.InsnList instructionList
    • tryCatchBlockList

      private final List<org.objectweb.asm.tree.TryCatchBlockNode> tryCatchBlockList
    • localVariableList

      private final List<org.objectweb.asm.tree.LocalVariableNode> localVariableList
    • annotations

      private final List<VisibleAnnotation> annotations
    • arity

      private int arity
    • returns

      private boolean returns
  • Constructor Details

    • CodeBlock

      public CodeBlock()
    • CodeBlock

      public CodeBlock(CodeBlock block)
    • CodeBlock

      public CodeBlock(int arity)
  • Method Details

    • newCodeBlock

      public static CodeBlock newCodeBlock()
    • newCodeBlock

      public static CodeBlock newCodeBlock(int arity)
    • newCodeBlock

      public static CodeBlock newCodeBlock(CodeBlock block)
    • aloadMany

      public CodeBlock aloadMany(int... indices)
      Short-hand for specifying a set of aloads
      Parameters:
      indices - list of aloads you want
    • aload

      public CodeBlock aload(int index)
    • iload

      public CodeBlock iload(int index)
    • lload

      public CodeBlock lload(int index)
    • fload

      public CodeBlock fload(int index)
    • dload

      public CodeBlock dload(int index)
    • astore

      public CodeBlock astore(int index)
    • istore

      public CodeBlock istore(int index)
    • lstore

      public CodeBlock lstore(int index)
    • fstore

      public CodeBlock fstore(int index)
    • dstore

      public CodeBlock dstore(int index)
    • ldc

      public CodeBlock ldc(Object value)
    • bipush

      public CodeBlock bipush(int byteValue)
    • sipush

      public CodeBlock sipush(int shortValue)
    • pushInt

      public CodeBlock pushInt(int value)
    • pushBoolean

      public CodeBlock pushBoolean(boolean bool)
    • invokestatic

      public CodeBlock invokestatic(String className, String methodName, String methodDesc)
    • invokespecial

      public CodeBlock invokespecial(String className, String methodName, String methodDesc)
    • invokevirtual

      public CodeBlock invokevirtual(String className, String methodName, String methodDesc)
    • invokeinterface

      public CodeBlock invokeinterface(String className, String methodName, String methodDesc)
    • invokedynamic

      public CodeBlock invokedynamic(String name, String descriptor, org.objectweb.asm.Handle bootstrapMethod, Object... bootstrapArguments)
    • aprintln

      public CodeBlock aprintln()
    • iprintln

      public CodeBlock iprintln()
    • areturn

      public CodeBlock areturn()
    • ireturn

      public CodeBlock ireturn()
    • freturn

      public CodeBlock freturn()
    • lreturn

      public CodeBlock lreturn()
    • dreturn

      public CodeBlock dreturn()
    • newobj

      public CodeBlock newobj(String desc)
    • dup

      public CodeBlock dup()
    • swap

      public CodeBlock swap()
    • swap2

      public CodeBlock swap2()
    • getstatic

      public CodeBlock getstatic(String className, String fieldName, String fieldDesc)
    • putstatic

      public CodeBlock putstatic(String className, String fieldName, String fieldDesc)
    • getfield

      public CodeBlock getfield(String className, String fieldName, String fieldDesc)
    • putfield

      public CodeBlock putfield(String className, String fieldName, String fieldDesc)
    • voidreturn

      public CodeBlock voidreturn()
    • anewarray

      public CodeBlock anewarray(String arrayDesc)
    • multianewarray

      public CodeBlock multianewarray(String arrayDesc, int dims)
    • newarray

      public CodeBlock newarray(int size)
    • iconst_m1

      public CodeBlock iconst_m1()
    • iconst_0

      public CodeBlock iconst_0()
    • iconst_1

      public CodeBlock iconst_1()
    • iconst_2

      public CodeBlock iconst_2()
    • iconst_3

      public CodeBlock iconst_3()
    • iconst_4

      public CodeBlock iconst_4()
    • iconst_5

      public CodeBlock iconst_5()
    • lconst_0

      public CodeBlock lconst_0()
    • aconst_null

      public CodeBlock aconst_null()
    • label

      public CodeBlock label(org.objectweb.asm.tree.LabelNode labelNode)
    • nop

      public CodeBlock nop()
    • pop

      public CodeBlock pop()
    • pop2

      public CodeBlock pop2()
    • arrayload

      public CodeBlock arrayload()
    • arraystore

      public CodeBlock arraystore()
    • iarrayload

      public CodeBlock iarrayload()
    • barrayload

      public CodeBlock barrayload()
    • barraystore

      public CodeBlock barraystore()
    • aaload

      public CodeBlock aaload()
    • aastore

      public CodeBlock aastore()
    • iaload

      public CodeBlock iaload()
    • iastore

      public CodeBlock iastore()
    • laload

      public CodeBlock laload()
    • lastore

      public CodeBlock lastore()
    • baload

      public CodeBlock baload()
    • bastore

      public CodeBlock bastore()
    • saload

      public CodeBlock saload()
    • sastore

      public CodeBlock sastore()
    • caload

      public CodeBlock caload()
    • castore

      public CodeBlock castore()
    • faload

      public CodeBlock faload()
    • fastore

      public CodeBlock fastore()
    • daload

      public CodeBlock daload()
    • dastore

      public CodeBlock dastore()
    • fcmpl

      public CodeBlock fcmpl()
    • fcmpg

      public CodeBlock fcmpg()
    • dcmpl

      public CodeBlock dcmpl()
    • dcmpg

      public CodeBlock dcmpg()
    • dup_x2

      public CodeBlock dup_x2()
    • dup_x1

      public CodeBlock dup_x1()
    • dup2_x2

      public CodeBlock dup2_x2()
    • dup2_x1

      public CodeBlock dup2_x1()
    • dup2

      public CodeBlock dup2()
    • trycatch

      public CodeBlock trycatch(org.objectweb.asm.tree.LabelNode scopeStart, org.objectweb.asm.tree.LabelNode scopeEnd, org.objectweb.asm.tree.LabelNode handler, String exceptionType)
    • trycatch

      public CodeBlock trycatch(String exceptionType, Runnable body, Runnable catchBody)
    • go_to

      public CodeBlock go_to(org.objectweb.asm.tree.LabelNode label)
    • lookupswitch

      public CodeBlock lookupswitch(org.objectweb.asm.tree.LabelNode defaultHandler, int[] keys, org.objectweb.asm.tree.LabelNode[] handlers)
    • athrow

      public CodeBlock athrow()
    • instance_of

      public CodeBlock instance_of(String typeDesc)
    • ifeq

      public CodeBlock ifeq(org.objectweb.asm.tree.LabelNode jumpLabel)
    • iffalse

      public CodeBlock iffalse(org.objectweb.asm.tree.LabelNode jumpLabel)
    • ifne

      public CodeBlock ifne(org.objectweb.asm.tree.LabelNode jumpLabel)
    • iftrue

      public CodeBlock iftrue(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_acmpne

      public CodeBlock if_acmpne(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_acmpeq

      public CodeBlock if_acmpeq(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_icmple

      public CodeBlock if_icmple(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_icmpgt

      public CodeBlock if_icmpgt(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_icmplt

      public CodeBlock if_icmplt(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_icmpne

      public CodeBlock if_icmpne(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_icmpeq

      public CodeBlock if_icmpeq(org.objectweb.asm.tree.LabelNode jumpLabel)
    • if_icmpge

      public CodeBlock if_icmpge(org.objectweb.asm.tree.LabelNode jumpLabel)
    • checkcast

      public CodeBlock checkcast(String typeDesc)
    • line

      public CodeBlock line(int line)
    • line

      public CodeBlock line(int line, org.objectweb.asm.tree.LabelNode label)
    • ifnonnull

      public CodeBlock ifnonnull(org.objectweb.asm.tree.LabelNode jumpLabel)
    • ifnull

      public CodeBlock ifnull(org.objectweb.asm.tree.LabelNode jumpLabel)
    • iflt

      public CodeBlock iflt(org.objectweb.asm.tree.LabelNode jumpLabel)
    • ifle

      public CodeBlock ifle(org.objectweb.asm.tree.LabelNode jumpLabel)
    • ifgt

      public CodeBlock ifgt(org.objectweb.asm.tree.LabelNode jumpLabel)
    • ifge

      public CodeBlock ifge(org.objectweb.asm.tree.LabelNode jumpLabel)
    • arraylength

      public CodeBlock arraylength()
    • ishr

      public CodeBlock ishr()
    • ishl

      public CodeBlock ishl()
    • iushr

      public CodeBlock iushr()
    • lshr

      public CodeBlock lshr()
    • lshl

      public CodeBlock lshl()
    • lushr

      public CodeBlock lushr()
    • lcmp

      public CodeBlock lcmp()
    • iand

      public CodeBlock iand()
    • ior

      public CodeBlock ior()
    • ixor

      public CodeBlock ixor()
    • land

      public CodeBlock land()
    • lor

      public CodeBlock lor()
    • lxor

      public CodeBlock lxor()
    • iadd

      public CodeBlock iadd()
    • ladd

      public CodeBlock ladd()
    • fadd

      public CodeBlock fadd()
    • dadd

      public CodeBlock dadd()
    • isub

      public CodeBlock isub()
    • lsub

      public CodeBlock lsub()
    • fsub

      public CodeBlock fsub()
    • dsub

      public CodeBlock dsub()
    • idiv

      public CodeBlock idiv()
    • irem

      public CodeBlock irem()
    • ineg

      public CodeBlock ineg()
    • i2d

      public CodeBlock i2d()
    • i2l

      public CodeBlock i2l()
    • i2f

      public CodeBlock i2f()
    • i2s

      public CodeBlock i2s()
    • i2c

      public CodeBlock i2c()
    • i2b

      public CodeBlock i2b()
    • ldiv

      public CodeBlock ldiv()
    • lrem

      public CodeBlock lrem()
    • lneg

      public CodeBlock lneg()
    • l2d

      public CodeBlock l2d()
    • l2i

      public CodeBlock l2i()
    • l2f

      public CodeBlock l2f()
    • fdiv

      public CodeBlock fdiv()
    • frem

      public CodeBlock frem()
    • fneg

      public CodeBlock fneg()
    • f2d

      public CodeBlock f2d()
    • f2i

      public CodeBlock f2i()
    • f2l

      public CodeBlock f2l()
    • ddiv

      public CodeBlock ddiv()
    • drem

      public CodeBlock drem()
    • dneg

      public CodeBlock dneg()
    • d2f

      public CodeBlock d2f()
    • d2i

      public CodeBlock d2i()
    • d2l

      public CodeBlock d2l()
    • imul

      public CodeBlock imul()
    • lmul

      public CodeBlock lmul()
    • fmul

      public CodeBlock fmul()
    • dmul

      public CodeBlock dmul()
    • iinc

      public CodeBlock iinc(int varIndex, int increment)
    • monitorenter

      public CodeBlock monitorenter()
    • monitorexit

      public CodeBlock monitorexit()
    • jsr

      public CodeBlock jsr(org.objectweb.asm.tree.LabelNode branch)
    • ret

      public CodeBlock ret(int value)
    • visitInsn

      public CodeBlock visitInsn(int opcode)
    • visitIntInsn

      public CodeBlock visitIntInsn(int opcode, int operand)
    • visitInsnNode

      public CodeBlock visitInsnNode(int opcode, int operand)
    • visitTypeInsn

      public CodeBlock visitTypeInsn(int opcode, String desc)
    • visitFieldInsn

      public CodeBlock visitFieldInsn(int opcode, String className, String fieldName, String fieldDesc)
    • visitMethodInsn

      public CodeBlock visitMethodInsn(int opcode, String className, String methodName, String methodDesc)
    • visitInvokeDynamicInsn

      public CodeBlock visitInvokeDynamicInsn(String name, String desc, org.objectweb.asm.Handle bootstrapMethod, Object... bootstrapArguments)
    • visitJumpInsn

      public CodeBlock visitJumpInsn(int opcode, org.objectweb.asm.tree.LabelNode node)
    • visitLabel

      public CodeBlock visitLabel(org.objectweb.asm.Label label)
    • visitLdcInsn

      public CodeBlock visitLdcInsn(Object value)
    • visitIincInsn

      public CodeBlock visitIincInsn(int varIndex, int increment)
    • visitTableSwitchInsn

      public CodeBlock visitTableSwitchInsn(int min, int max, org.objectweb.asm.tree.LabelNode defaultHandler, org.objectweb.asm.tree.LabelNode[] handlers)
    • visitLookupSwitchInsn

      public CodeBlock visitLookupSwitchInsn(org.objectweb.asm.tree.LabelNode defaultHandler, int[] keys, org.objectweb.asm.tree.LabelNode[] handlers)
    • visitMultiANewArrayInsn

      public CodeBlock visitMultiANewArrayInsn(String desc, int dims)
    • visitTryCatchBlock

      public CodeBlock visitTryCatchBlock(org.objectweb.asm.tree.LabelNode scopeStart, org.objectweb.asm.tree.LabelNode scopeEnd, org.objectweb.asm.tree.LabelNode handler, String exceptionType)
    • visitLocalVariable

      public CodeBlock visitLocalVariable(String varName, String varDesc, String signature, org.objectweb.asm.tree.LabelNode scopeStart, org.objectweb.asm.tree.LabelNode scopeEnd, int varIndex)
    • visitLineNumber

      public CodeBlock visitLineNumber(int lineNumber, org.objectweb.asm.tree.LabelNode start)
    • tableswitch

      public CodeBlock tableswitch(int min, int max, org.objectweb.asm.tree.LabelNode defaultLabel, org.objectweb.asm.tree.LabelNode[] cases)
    • visitFrame

      public CodeBlock visitFrame(int opcode, int nrLocals, Object[] localTypes, int nrStackElements, Object[] stackElements)
    • getInstructionList

      public org.objectweb.asm.tree.InsnList getInstructionList()
    • getTryCatchBlockList

      public List<org.objectweb.asm.tree.TryCatchBlockNode> getTryCatchBlockList()
    • getLocalVariableList

      public List<org.objectweb.asm.tree.LocalVariableNode> getLocalVariableList()
    • getAnnotations

      public List<VisibleAnnotation> getAnnotations()
    • frame_same

      public CodeBlock frame_same(Object... stackArguments)
      adds a compressed frame to the stack
      Parameters:
      stackArguments - the argument types on the stack, represented as "class path names" e.g java/lang/RuntimeException
    • prepend

      public CodeBlock prepend(CodeBlock codeBlock)
    • append

      public CodeBlock append(CodeBlock codeBlock)
    • annotation

      public VisibleAnnotation annotation(Class<?> type)
    • addAnnotation

      public CodeBlock addAnnotation(VisibleAnnotation annotation)
    • addAll

      public CodeBlock addAll(org.objectweb.asm.tree.InsnList insnList)
    • arity

      public int arity()
    • returns

      public boolean returns()