Package com.strobel.assembler.ir
Class StackMappingVisitor.InstructionAnalyzer
- java.lang.Object
-
- com.strobel.assembler.ir.StackMappingVisitor.InstructionAnalyzer
-
- All Implemented Interfaces:
InstructionVisitor
- Enclosing class:
- StackMappingVisitor
private final class StackMappingVisitor.InstructionAnalyzer extends java.lang.Object implements InstructionVisitor
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
_afterExecute
private MethodBody
_body
private CoreMetadataFactory
_factory
private InstructionVisitor
_innerVisitor
private java.util.Stack<FrameValue>
_temp
-
Fields inherited from interface com.strobel.assembler.ir.InstructionVisitor
EMPTY
-
-
Constructor Summary
Constructors Modifier Constructor Description private
InstructionAnalyzer(MethodBody body)
private
InstructionAnalyzer(MethodBody body, InstructionVisitor innerVisitor)
-
Method Summary
-
-
-
Field Detail
-
_innerVisitor
private final InstructionVisitor _innerVisitor
-
_body
private final MethodBody _body
-
_factory
private final CoreMetadataFactory _factory
-
_afterExecute
private boolean _afterExecute
-
_temp
private final java.util.Stack<FrameValue> _temp
-
-
Constructor Detail
-
InstructionAnalyzer
private InstructionAnalyzer(MethodBody body)
-
InstructionAnalyzer
private InstructionAnalyzer(MethodBody body, InstructionVisitor innerVisitor)
-
-
Method Detail
-
visit
public void visit(Instruction instruction)
- Specified by:
visit
in interfaceInstructionVisitor
-
visit
public void visit(OpCode code)
- Specified by:
visit
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode code, TypeReference value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode opCode, MethodHandle value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode code, int value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode code, long value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode code, float value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode code, double value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitConstant
public void visitConstant(OpCode code, java.lang.String value)
- Specified by:
visitConstant
in interfaceInstructionVisitor
-
visitBranch
public void visitBranch(OpCode code, Instruction target)
- Specified by:
visitBranch
in interfaceInstructionVisitor
-
visitVariable
public void visitVariable(OpCode code, VariableReference variable)
- Specified by:
visitVariable
in interfaceInstructionVisitor
-
visitVariable
public void visitVariable(OpCode code, VariableReference variable, int operand)
- Specified by:
visitVariable
in interfaceInstructionVisitor
-
visitType
public void visitType(OpCode code, TypeReference type)
- Specified by:
visitType
in interfaceInstructionVisitor
-
visitMethod
public void visitMethod(OpCode code, MethodReference method)
- Specified by:
visitMethod
in interfaceInstructionVisitor
-
visitDynamicCallSite
public void visitDynamicCallSite(OpCode opCode, DynamicCallSite callSite)
- Specified by:
visitDynamicCallSite
in interfaceInstructionVisitor
-
visitField
public void visitField(OpCode code, FieldReference field)
- Specified by:
visitField
in interfaceInstructionVisitor
-
visitLabel
public void visitLabel(Label label)
- Specified by:
visitLabel
in interfaceInstructionVisitor
-
visitSwitch
public void visitSwitch(OpCode code, SwitchInfo switchInfo)
- Specified by:
visitSwitch
in interfaceInstructionVisitor
-
visitEnd
public void visitEnd()
- Specified by:
visitEnd
in interfaceInstructionVisitor
-
execute
private void execute(Instruction instruction)
-
computeSize
private int computeSize(java.util.List<ParameterDefinition> parameters)
-
substituteTypeArguments
private TypeReference substituteTypeArguments(TypeReference type, MemberReference member)
-
-