Uses of Class
serp.bytecode.Instruction
Packages that use Instruction
-
Uses of Instruction in serp.bytecode
Subclasses of Instruction in serp.bytecodeModifier and TypeClassDescriptionclassAny array load or store instruction.classLoads a value from an array onto the stack.classStore a value from the stack into an array.classAn instruction that takes as an argument a class to operate on.classAn instruction comparing two stack values.classAn instruction that that loads a constant onto the stack.classA conversion opcode such asi2l, f2i, etc.classInstruction that takes as an argument a field to operate on.classLoads a value from a field onto the stack.classAn instruction that specifies a position in the code block to jump to.classAn if instruction such asifnull, ifeq, etc.classTheiincinstruction.classAn instruction that specifies a position in the code block to jump to.classLoads a value from the locals table to the stack.classAn instruction that has an argument of an index into the local variable table of the current frame.classThelookupswitchinstruction.classOne of the math operations defined in theConstantsinterface.classAn instruction that invokes a method.classThemonitorenterinstruction.classThemonitorexitinstruction.classA synchronization instruction.classThemultianewarrayinstruction, which creates a new multi-dimensional array.classThenewarrayinstruction, which is used to create new arrays of primitive types.classStores a value from the stack into a field.classTheretinstruction is used in the implementation of finally.classReturns a value (or void) from a method.classRepresents an instruction that manipulates the stack of the current frame.classAn instruction to store a value from a local variable onto the stack.classContains functionality common to the different switch types (TableSwitch and LookupSwitch).classThetableswitchinstruction.classAny typed instruction.classThewideinstruction, which is used to allow other instructions to index values beyond what they can normally index baed on the length of their arguments.Methods in serp.bytecode that return InstructionModifier and TypeMethodDescriptionCode.add(Instruction ins) Adds a copy of the given instruction.Code.arraylength()Get the length of an array on the stack; thearraylengthopcode.Code.athrow()Throw an exception; theathrowopcode.LookupSwitchInstruction.getDefaultTarget()Synonymous withJumpInstruction.getTarget().SwitchInstruction.getDefaultTarget()Synonymous withJumpInstruction.getTarget().TableSwitchInstruction.getDefaultTarget()Synonymous withJumpInstruction.getTarget().Local.getEnd()The lastInstructionfor which this local is in scope.ExceptionHandler.getHandlerStart()Return the instruction marking the beginning of the catch {} block.Code.getInstructions()Return all the Instructions of this method.LineNumber.getStart()Return the instruction marking the beginning of this line.Local.getStart()Return the instruction marking the beginning of this local.JumpInstruction.getTarget()Get the current target instruction to jump to, if it has been set.LookupSwitchInstruction.getTargets()Return the targets of the case statements for this switch.SwitchInstruction.getTargets()Return the targets for this switch, or empty array if not set.TableSwitchInstruction.getTargets()Return the targets for this switch, or empty array if not set.ExceptionHandler.getTryEnd()Return the instruction at the end of the try {} block.ExceptionHandler.getTryStart()Return the instruction marking the beginning of the try {} block.Code.next()Return the next instruction.Code.nop()Add thenopopcode.Code.previous()Return the previous instruction.Code.set(Instruction ins) Replaces the last iterated instruction with a copy of the given one.Set the type of class being loaded.Set the type of class being loaded.Set the type of class being loaded.Methods in serp.bytecode with parameters of type InstructionModifier and TypeMethodDescriptionCode.add(Instruction ins) Adds a copy of the given instruction.LookupSwitchInstruction.addCase(int match, Instruction target) Add a case to this switch.SwitchInstruction.addCase(int match, Instruction target) Add a case to this switch.Code.addExceptionHandler(Instruction tryStart, Instruction tryEnd, Instruction handlerStart, Class catchType) Add an exception handler to this code block.Code.addExceptionHandler(Instruction tryStart, Instruction tryEnd, Instruction handlerStart, String catchType) Add an exception handler to this code block.Code.addExceptionHandler(Instruction tryStart, Instruction tryEnd, Instruction handlerStart, BCClass catchType) Add an exception handler to this code block.LineNumberTable.addLineNumber(Instruction start, int line) Add a new line number to this table.SwitchInstruction.addTarget(Instruction target) Add a target to this switch.TableSwitchInstruction.addTarget(Instruction target) Add a target to this switch.voidCode.after(Instruction ins) Position the iterator just after the given instruction.voidCode.before(Instruction ins) Position the iterator just before the given instruction.booleanClassInstruction.equalsInstruction(Instruction other) ClassInstructions are equal if the type they reference is the same or unset and if their opcodes are equal.booleanConstantInstruction.equalsInstruction(Instruction other) ConstantInstructions are equal if the const they reference is the same, or if the const of either is unset.booleanConvertInstruction.equalsInstruction(Instruction other) ConvertInstructions are equal if the types they convert between are either equal or unset.booleanFieldInstruction.equalsInstruction(Instruction other) FieldInstructions are equal if the field they reference is the same, or if the field of either is unset.booleanIIncInstruction.equalsInstruction(Instruction other) booleanInstruction.equalsInstruction(Instruction other) Instructions are equal if their opcodes are the same.booleanJumpInstruction.equalsInstruction(Instruction other) JumpInstructions are equal if they represent the same operation and the instruction they jump to is the same, or if the jump Instruction of either is unset.booleanLoadInstruction.equalsInstruction(Instruction other) LoadInstructions are equal if the type they reference the same type and locals index or if either is unset.booleanLocalVariableInstruction.equalsInstruction(Instruction other) Two local variable instructions are equal if the local index they reference is equal or if either index is 0/unset.booleanMathInstruction.equalsInstruction(Instruction other) MathInstructions are equal if they have the same operation and type, or the operation and type of either is unset.booleanMethodInstruction.equalsInstruction(Instruction other) MethodInstructions are equal if the method they reference is the same, or if the method of either is unset.booleanMultiANewArrayInstruction.equalsInstruction(Instruction other) Two MultiANewArray instructions are equal if they have the same type and dimensions, or if the type and dimensions of either is unset.booleanNewArrayInstruction.equalsInstruction(Instruction other) NewArray instructions are equal if the array type is the same, of if the array type of either is unset.booleanRetInstruction.equalsInstruction(Instruction other) booleanStoreInstruction.equalsInstruction(Instruction other) StoreInstructions are equal if the type they reference the same type and locals index or if either is unset.booleanWideInstruction.equalsInstruction(Instruction other) WideInstructions are equal if the instruction they augment is the same or unset.LineNumberTable.getLineNumber(Instruction ins) Return the line number for the given instruction, or null if none.booleanLineNumberTable.removeLineNumber(Instruction ins) Remove the line number for the given instruction.intCode.replace(Instruction[] templates, Instruction[] with) Equivalent to looping over each given template/replacement pair and callingCode.replace(Instruction,Instruction)for each.intCode.replace(Instruction template, Instruction with) Replaces all the instructions in this code block that match the given template with the given instruction.voidExceptionHandler.replaceTarget(Instruction oldTarget, Instruction newTarget) voidInstructionPtr.replaceTarget(Instruction oldTarget, Instruction newTarget) Replace the given old, likely invalid, target with a new target.voidJumpInstruction.replaceTarget(Instruction oldTarget, Instruction newTarget) voidLineNumber.replaceTarget(Instruction oldTarget, Instruction newTarget) voidLineNumberTable.replaceTarget(Instruction oldTarget, Instruction newTarget) voidLocal.replaceTarget(Instruction oldTarget, Instruction newTarget) voidLocalTable.replaceTarget(Instruction oldTarget, Instruction newTarget) voidLookupSwitchInstruction.replaceTarget(Instruction oldTarget, Instruction newTarget) voidSwitchInstruction.replaceTarget(Instruction oldTarget, Instruction newTarget) voidTableSwitchInstruction.replaceTarget(Instruction oldTarget, Instruction newTarget) booleanCode.searchBackward(Instruction template) Find the closest previous instruction from the current iterator position that matches the given one, according to theObject.equals(java.lang.Object)methods of the instruction types.booleanCode.searchForward(Instruction template) Find the next instruction from the current iterator position that matches the given one, according to theObject.equals(java.lang.Object)methods of the instruction types.Code.set(Instruction ins) Replaces the last iterated instruction with a copy of the given one.LookupSwitchInstruction.setCases(int[] matches, Instruction[] targets) Set the match-jumppt pairs for this switch.SwitchInstruction.setCases(int[] matches, Instruction[] targets) Set the match-jumppt pairs for this switch.LookupSwitchInstruction.setDefaultTarget(Instruction ins) Synonymous withJumpInstruction.setTarget(serp.bytecode.Instruction).SwitchInstruction.setDefaultTarget(Instruction ins) Synonymous withJumpInstruction.setTarget(serp.bytecode.Instruction).TableSwitchInstruction.setDefaultTarget(Instruction ins) Synonymous withJumpInstruction.setTarget(serp.bytecode.Instruction).voidLocal.setEnd(Instruction end) Set the lastInstructionfor which this local is in scope.voidExceptionHandler.setHandlerStart(Instruction instruction) Set theInstructionmarking the beginning of the catch block.WideInstruction.setInstruction(Instruction ins) Set the type of instruction this wide instruction modifies.voidLineNumber.setStart(Instruction instruction) Set theInstructionmarking the beginning this line.voidLocal.setStart(Instruction instruction) Set theInstructionmarking the beginning this local.JumpInstruction.setTarget(Instruction instruction) Set the instruction to jump to; the instruction must already be added to the code block.SwitchInstruction.setTargets(Instruction[] targets) Set the jump points for this switch.TableSwitchInstruction.setTargets(Instruction[] targets) Set the jump points for this switch.voidExceptionHandler.setTryEnd(Instruction instruction) Set the Instruction at the end of the try block.voidExceptionHandler.setTryStart(Instruction instruction) Set theInstructionmarking the beginning of the try block. -
Uses of Instruction in serp.bytecode.visitor
Methods in serp.bytecode.visitor with parameters of type InstructionModifier and TypeMethodDescriptionvoidBCVisitor.enterInstruction(Instruction obj) voidPrettyPrintVisitor.enterInstruction(Instruction obj) voidBCVisitor.exitInstruction(Instruction obj) voidPrettyPrintVisitor.exitInstruction(Instruction obj)