Class Graph
java.lang.Object
de.mirkosertic.bytecoder.core.ir.Graph
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate final Loggerstatic final Stringprivate final Map<org.objectweb.asm.tree.AbstractInsnNode, InstructionTranslation> private final Map<org.objectweb.asm.Type, TypeReference> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidapplyFixups(Map<org.objectweb.asm.tree.AbstractInsnNode, Map<org.objectweb.asm.tree.AbstractInsnNode, EdgeType>> incomingEdgesPerInstruction) (package private) voidvoiddeleteNode(Node node) newAdd(org.objectweb.asm.Type type) newAND(org.objectweb.asm.Type type) newArrayLoad(org.objectweb.asm.Type type) newBootstrapMethod(org.objectweb.asm.Type methodType, org.objectweb.asm.Type className, String methodName, Reference.Kind kind) newCast(org.objectweb.asm.Type type) newCaughtException(org.objectweb.asm.Type type) newClassFieldExpression(org.objectweb.asm.Type type, ResolvedField resolvedField) newClassInitialization(org.objectweb.asm.Type type) newCMP()newCopy()newDiv(org.objectweb.asm.Type type) newDouble(double constant) newEnumValuesOf(org.objectweb.asm.Type type) newFieldReference(ResolvedField field, Reference.Kind kind) newFloat(float constant) newFrameDebugInfo(Frame frame) newGoto()newIf()newInstanceFieldExpression(org.objectweb.asm.Type type, ResolvedField resolvedField) newInt(int value) newInvokeDynamicExpression(org.objectweb.asm.Type type) newLineNumberDebugInfo(String sourceFile, int lineNumber) newLong(long constant) newMethodArgument(org.objectweb.asm.Type type, int index) newMethodInvocation(InvocationType invocationType, org.objectweb.asm.tree.MethodInsnNode insn, ResolvedMethod rm) newMethodInvocationExpression(InvocationType invocationType, org.objectweb.asm.tree.MethodInsnNode insn, ResolvedMethod rm) newMethodReference(ResolvedMethod method, Reference.Kind kind) newMethodType(org.objectweb.asm.Type type) newMul(org.objectweb.asm.Type type) newNEG(org.objectweb.asm.Type type) newNew(org.objectweb.asm.Type type) newNewArray(org.objectweb.asm.Type arrayType) newNop()newNullTest(NullTest.Operation operation) newNumericalTest(NumericalTest.Operation operation) newObjectString(StringConstant value) newOR(org.objectweb.asm.Type type) newPHI(org.objectweb.asm.Type type) newPrimitiveClassReference(org.objectweb.asm.Type type) newReferenceTest(ReferenceTest.Operation operation) newReinterpret(org.objectweb.asm.Type type) newRem(org.objectweb.asm.Type type) newSetClassField(ResolvedField resolvedField) newSetInstanceField(ResolvedField resolvedField) newSHL(org.objectweb.asm.Type type) newShort(short value) newSHR(org.objectweb.asm.Type type) newSub(org.objectweb.asm.Type type) newTableSwitch(int min, int max) newThis(org.objectweb.asm.Type type) newTryCatch(String label) newTypeConversion(org.objectweb.asm.Type type) newTypeReference(org.objectweb.asm.Type type) newUSHR(org.objectweb.asm.Type type) newVariable(org.objectweb.asm.Type type) newXOR(org.objectweb.asm.Type type) nodes()Node[]regionByLabel(String label) voidregisterTranslation(org.objectweb.asm.tree.AbstractInsnNode instruction, InstructionTranslation translation) voidremapDataFlow(Node original, Node newValue) voidreplaceInControlFlow(ControlTokenConsumer source, ControlTokenConsumer target) voidtranslationFor(org.objectweb.asm.tree.AbstractInsnNode instruction) voidwriteDebugTo(OutputStream fileOutputStream)
-
Field Details
-
START_REGION_NAME
- See Also:
-
nodes
-
translations
-
fixups
-
labeledRegions
-
logger
-
typeReferences
-
importLabelCounter
private int importLabelCounter
-
-
Constructor Details
-
Graph
-
-
Method Details
-
newStartRegion
-
outgoingDataFlowsFor
-
addFixup
-
applyFixups
-
registerTranslation
public void registerTranslation(org.objectweb.asm.tree.AbstractInsnNode instruction, InstructionTranslation translation) -
translationFor
-
register
-
nodes
-
regionByLabel
-
newThis
-
newMethodArgument
-
newNullReference
-
newInt
-
newShort
-
newNewArray
-
newIf
-
newUSHR
-
newSHR
-
newSHL
-
newNEG
-
newAND
-
newOR
-
newXOR
-
newObjectString
-
newMethodInvocation
public MethodInvocation newMethodInvocation(InvocationType invocationType, org.objectweb.asm.tree.MethodInsnNode insn, ResolvedMethod rm) -
newMethodInvocationExpression
public MethodInvocationExpression newMethodInvocationExpression(InvocationType invocationType, org.objectweb.asm.tree.MethodInsnNode insn, ResolvedMethod rm) -
newReturnNothing
-
newReturnValue
-
newAdd
-
newArrayStore
-
newArrayLoad
-
newSub
-
newDiv
-
newMul
-
newTypeConversion
-
writeDebugTo
-
newPHI
-
newVariable
-
newCopy
-
newCast
-
newNop
-
newCaughtException
-
newGoto
-
newCMP
-
newRem
-
newRegion
-
newTryCatch
-
newUnwind
-
newMonitorEnter
-
newMonitorExit
-
newArrayLength
-
newTypeReference
-
newNew
-
newInstanceOf
-
newTableSwitch
-
newLookupSwitch
-
newInstanceFieldExpression
public ReadInstanceField newInstanceFieldExpression(org.objectweb.asm.Type type, ResolvedField resolvedField) -
newClassFieldExpression
public ReadClassField newClassFieldExpression(org.objectweb.asm.Type type, ResolvedField resolvedField) -
newSetInstanceField
-
newSetClassField
-
deleteNode
-
newFloat
-
newDouble
-
newLong
-
newLineNumberDebugInfo
-
newFrameDebugInfo
-
newMethodReference
-
newFieldReference
-
newResolveCallsite
-
newMethodType
-
newInvokeDynamicExpression
-
newNumericalTest
-
newNullTest
-
newReferenceTest
-
newRuntimeClass
-
newPrimitiveClassReference
-
newRuntimeTypeOf
-
newEnumValuesOf
-
newReinterpret
-
newBootstrapMethod
public BootstrapMethod newBootstrapMethod(org.objectweb.asm.Type methodType, org.objectweb.asm.Type className, String methodName, Reference.Kind kind) -
newClassInitialization
-
remapDataFlow
-
deleteFromControlFlowInternally
-
replaceInControlFlow
-
sanityCheck
public void sanityCheck() -
stampFrom
-