Uses of Interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric
Packages that use IEGeneric
Package
Description
This package and its sub-packages contain the types used to access
gendec, JEB's generic
decompiler.Types used to create and access
gendec's IR (Intermediate Representation).Types used by the IR template and IR compiler.
Types specific to
gendec's IR optimizers.-
Uses of IEGeneric in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return IEGenericModifier and TypeMethodDescriptionprotected IEGenericAbstractConverter.convertOperand(long insnAddress, InsnType insn, int opndIndex) This method is called by theAbstractConverter<InsnType extends IInstruction>.com.pnfsoftware.jeb.core.units.code.asm.decompiler.AbstractConverter.AutoConverter.AbstractConverter.convertReturnLocation(IERoutineContext ctx, IWildcardPrototype prototype) IEConverter.convertReturnLocation(IERoutineContext ctx, IWildcardPrototype prototype) Given a prototype, determine the IR expression representing the return address location of a call to a method of said prototype.IERoutineContext.getInputVariableForRegister(IDFA<IEStatement> dfa, long nativeRegId) IERoutineContext.getInputVariableForRegister(IDFA<IEStatement> dfa, IEVar reg) IERoutineContext.getOutputVariableForRegister(IDFA<IEStatement> dfa, long exitAddress, int nativeRegId) IERoutineContext.getOutputVariableForRegister(IDFA<IEStatement> dfa, long exitAddress, IEVar reg) final IEGenericAbstractConverter.getRegister(String name) AbstractConverter.getRegister(String name, ELocation loc) The default implementation forwards toIEGlobalContext.getVariableByName(String).IEConverter.getRegister(String name) IEConverter.getRegister(String name, ELocation loc) Retrieve anIEVar-register by its name.final IEGenericAbstractConverter.getRegisterVariableFromNativeRegisterId(long nativeRegId) AbstractConverter.getRegisterVariableFromNativeRegisterId(long nativeRegId, ELocation loc) The default implementation attempts to resolve the native register id or number by querying the associated processor's register bank layout.IEConverter.getRegisterVariableFromNativeRegisterId(long nativeRegId) IEConverter.getRegisterVariableFromNativeRegisterId(long nativeRegId, ELocation loc) Get theIEVar-register IR variable representing a native platform register number or id (as defined in a register bank layout).AbstractConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric target, IEGeneric expectedTarget) IEConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric callsite, IEGeneric expectedTarget) Normalize a branching expression.IERoutineContext.retrieveVariableForRegister(IEGeneric reg, Collection<Integer> filters, boolean createIfNotFound) Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return types with arguments of type IEGenericModifier and TypeMethodDescriptionAbstractConverter.convertParameterExpressions(IERoutineContext ctx, IWildcardPrototype prototype, INativeMethodItem targetRoutine, List<IWildcardType> varArgTypes) IEConverter.convertParameterExpressions(IERoutineContext ctx, IWildcardPrototype prototype, INativeMethodItem targetRoutine, List<IWildcardType> varArgTypes) Given a prototype, determine the list of IR expressions representing the input expressions (would also contain implicitly read registers).AbstractConverter.convertReturnExpressions(IERoutineContext ctx, IWildcardPrototype prototype, INativeMethodItem targetRoutine, List<IWildcardType> varArgTypes, List<IEGeneric> outSpoiled) IEConverter.convertReturnExpressions(IERoutineContext ctx, IWildcardPrototype prototype, INativeMethodItem targetRoutine, List<IWildcardType> varArgTypes, List<IEGeneric> outSpoiled) Given a prototype, determine the list of IR expressions representing the output expressions.IERoutineContext.getRoutineInputVariables()Retrieve the IR expressions holding the routine's parameters.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler with parameters of type IEGenericModifier and TypeMethodDescriptionAbstractNativeDecompilerExtension.collectCandidateMemoryDerefs(IEGeneric exp, EDefUseInfo defuse, boolean isDef) The default implementation does nothing and requests continuation.INativeDecompilerExtension.collectCandidateMemoryDerefs(IEGeneric exp, EDefUseInfo defuse, boolean isDef) This method is called potentially-used/defined variables (candidates) are being collected forIEMemIR expressions.IERoutineContext.createAssign(IEGeneric dst, IEGeneric src) IERoutineContext.createAssignIf(IEAssign assignTpl, IEGeneric predicate) IERoutineContext.createBranchAssign(IEGeneric dst, IEGeneric src, boolean subroutineCall) IERoutineContext.createBuiltinMethodCall(String name, IEGeneric retexp, IEGeneric... argexps) Create aCallto a built-in method reference.IERoutineContext.createCall(IEGeneric callsite, IEGeneric retloc, List<IEGeneric> returns, List<IEGeneric> params, int stackPointerDelta, List<IEGeneric> spoiledExpressions, IWildcardPrototype prototype) IERoutineContext.createCall(IEGeneric callsite, List<IEVar> targetCandidates, IWildcardPrototype prototype, List<IWildcardType> varArgTypes, boolean failsafePrototype) IEGlobalContext.createCompose(IEGeneric... elts) Create a composition of IR elements.IERoutineContext.createCompose(IEGeneric... elts) Create a composition.IEGlobalContext.createCond(IEGeneric p, IEGeneric a, IEGeneric b) IERoutineContext.createCond(IEGeneric p, IEGeneric a, IEGeneric b) IEGlobalContext.createConversionOperation(OperationType convOperator, IEGeneric src, int dstSize) Create a conversion operation: an integer truncation, integer extension (zero or signed), float truncation or extension, float-to-int and int-to-float conversion.IERoutineContext.createConversionOperation(OperationType convOperator, IEGeneric src, int dstSize) Create a conversion operation: an integer truncation, integer extension (zero or signed), float truncation or extension, float-to-int and int-to-float conversion.IEGlobalContext.createGroupElt(IEGroup collection, IEGeneric index) IERoutineContext.createGroupElt(IEGroup collection, IEGeneric index) IERoutineContext.createJump(int branchAddress, IEGeneric condition) IERoutineContext.createJumpFar(IEGeneric jumpSite) IERoutineContext.createJumpFar(IEGeneric jumpSite, IEGeneric condition) IEGlobalContext.createOperation(FunctionOptype functionOptype, IEGeneric... opnds) IEGlobalContext.createOperation(OperationType optype, IEGeneric op1) IEGlobalContext.createOperation(OperationType optype, IEGeneric op1, IEGeneric op2) IERoutineContext.createOperation(FunctionOptype functionOptype, IEGeneric... opnds) IERoutineContext.createOperation(OperationType optype, IEGeneric op1) IERoutineContext.createOperation(OperationType optype, IEGeneric op1, IEGeneric op2) IEGlobalContext.createResizeOperation(IEGeneric opnd, int bitsize, boolean signed) Create a resize operation operation: truncation, zero-extension, or sign-extension.IERoutineContext.createResizeOperation(IEGeneric opnd, int bitsize, boolean signed) Create a resize operation operation: truncation, zero-extension, or sign-extension.IERoutineContext.createReturn(IEGeneric value) IEGlobalContext.createSlice(IEGeneric e, int bitstart, int bitend) IEGlobalContext.createSlice(IEGeneric e, IERange range) AbstractConverter.createStackMemoryAccess(IEGeneric address, int bitsize) The default implementation assumes a segment-less memory model.IEConverter.createStackMemoryAccess(IEGeneric address, int bitsize) Create an EMem using the adequate segment register (if any) for the current converter.IERoutineContext.createSwitch(IEGeneric controlExpression, int defaultAddress) IERoutineContext.createUntranslatedInstruction(long nativeAddress, String nativeMnemonic, IEGeneric... irOperands) protected final booleanAbstractConverter.isPCRightValueCompatibleReturnValue(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric PCRightVal, IEGeneric expectedReturnAddress) Can be overridden by implementors when complex return expression matching is needed.AbstractConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric target, IEGeneric expectedTarget) IEConverter.normalizeBranchingExpression(IDFA<IEStatement> dfa, BasicBlock<IEStatement> b, IEGeneric callsite, IEGeneric expectedTarget) Normalize a branching expression.IERoutineContext.retrieveVariableForRegister(IEGeneric reg, Collection<Integer> filters, boolean createIfNotFound) voidIERoutineContext.setTypeForSame(IEGeneric exp, IWildcardType type) Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler with type arguments of type IEGenericModifier and TypeMethodDescriptionIERoutineContext.createCall(IEGeneric callsite, IEGeneric retloc, List<IEGeneric> returns, List<IEGeneric> params, int stackPointerDelta, List<IEGeneric> spoiledExpressions, IWildcardPrototype prototype) IEGlobalContext.createCompose(Collection<IEGeneric> elts) IERoutineContext.createCompose(Collection<IEGeneric> elts) Create a composition.IERoutineContext.createReturn(List<IEGeneric> values) IERoutineContext.createUntranslatedInstruction(long nativeAddress, String nativeMnemonic, List<IEGeneric> irOperands) -
Uses of IEGeneric in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Subinterfaces of IEGeneric in com.pnfsoftware.jeb.core.units.code.asm.decompiler.irModifier and TypeInterfaceDescriptioninterfaceIR expression representing an assignment.interfaceIR statement used to represent calls to sub-routines.interfaceComposition of two or more IR expressions.interfaceThis IR expression represents the ternary conditional expression.interfaceinterfaceThis IR represents the element of anIEGroup.interfaceA terminal IR representing an immediate value.interfaceIR expression representing an intra-procedural jump to a fixed IR target.interfaceA conditional branching instruction to an arbitrary IR representing a native address.interfaceBase interface used to represent IR short or long jumps.interfaceAn IR expression representing a dereference to a sized memory area.interfaceA no-operation IR instruction.interfaceAn IR operation.interfaceThis IR object represents immutable integer range object.interfaceA routine terminator.interfaceThis IR represents a slice of another IR expression.interfaceBase class for all IR statements.interfaceSwitch (branch to N sites) IR statement.interfaceSpecial IR statement that can be used to wrap non-standard, partially translated, or untranslated native code instructions.interfaceRepresentation of an IR variable.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type parameters of type IEGenericModifier and TypeMethodDescription<T extends IEGeneric>
TIEGeneric.findByType(Class<T> clazz) Find the first child element by type.<T extends IEGeneric>
TIEGeneric.findByType(Class<T> clazz, int start) Find a child element by type.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return IEGenericModifier and TypeMethodDescriptionIEGeneric.bit(int pos) Retrieve a one bit value at the pos positionstatic IEGenericEUtil.buildCarryFlag(IEGeneric a, IEGeneric b, IEGeneric result, boolean addition, boolean nativeOp) Generate an IR expression computing the carry flag bit of an integer addition or subtraction operation.static IEGenericEUtil.buildOverflowFlag(IEGeneric a, IEGeneric b, IEGeneric result, boolean addition) Generate an IR expression computing the overflow flag bit of an integer addition or subtraction operation.static IEGenericEUtil.checkFalse(IEGeneric e) static IEGenericstatic IEGenericEUtil.cmpFloat(OperationType op, IEGeneric op1, IEGeneric op2) static IEGenericEUtil.compose(IERoutineContext ctx, IEGeneric... elts) Create a composition if the provided list of elements contains at least two entries, else return the single element.static IEGenericEUtil.compose(IERoutineContext ctx, Collection<IEGeneric> elts) Create a composition if the provided list of elements contains at list two entries, else return the single element.IEGeneric.duplicate()Clone (deep copy) the expression.static IEGenericExtend anIEGeneric.default IEGenericIEGeneric.extend(int newBitsize, boolean signedExtension) IEGeneric.findParent(IEGeneric elt) Find the parent of the first instance of the provided child element.IEGeneric.findParent(IEGeneric elt, int start) Find the parent of the the provided child element.IECall.getArgument(int index) Get the Nth argument of this ECall.static IEGenericEUtil.getAssignmentDestination(IEStatement stm) Retrieve the destination of anIEAssign(or null if is not an assignment).static IEGenericEUtil.getAssignmentSource(IEStatement stm) Retrieve the source of anIEAssign(or null if is not an assignment).IECall.getCallSite()IECond.getCondition()Retrieve the condition, thecexpression inc ? exprTrue : exprFalseIEJumpWithOptionalCondition.getCondition()IESwitch.getControlExpression()IEAssign.getDstOperand()Retrieve the destination operand of this assignment.ETypeInfo.Entry.getElement()IEGroup.getElement(int index) IECond.getExpressionFalse()Retrieve the expression when false, theexprFalseexpression inc ? exprTrue : exprFalseIECond.getExpressionTrue()Retrieve the expression when true, theexprTrueexpression inc ? exprTrue : exprFalseIECompose.getHighPart()Get the highest bits component.IEGroupElt.getIndex()EVarCopyFinder.getIRForSlicedReg(boolean createIfNotFound) IEJumpFar.getJumpsite()IEAssign.getLeftOperand()Retrieve the destination operand of this assignment.IECompose.getLowPart()Get the lowest bits component.IEOperation.getOperand(int index) Retrieve an operand by index.IEOperation.getOperand1()Retrieve the first operand.IEOperation.getOperand2()Retrieve the second operand.IEUntranslatedInstruction.getParameterExpression(int index) IECompose.getPart(int index) Get a part by index.IEMem.getReference()Retrieve Memory address of thisIEMemIECall.getReturnExpression(int index) Get the Nth return expression of this ECall.IEUntranslatedInstruction.getReturnExpression()Retrieve the primary return expression (if the IR returns a tuple, the primary return expression if the first item in the tuple).IECall.getReturnLocation()Retrieve the return address for this call.IEAssign.getRightOperand()Retrieve the source operand of this assignment.IEMem.getSegment()Retrieve Memory segment (offset) from memory address.static IEGenericEUtil.getSignExtensionBase(IECompose e) Check if the composition is a sign-extension of a base expression, and if so, provide the base expression.static IEGenericEUtil.getSignExtensionBase(IEGeneric e) Check if an IR expression looks like a sign-extension operation, and if so, provide the base expression.static IEGenericEUtil.getSignExtensionBase(IEGeneric base, IEGeneric extend) Check if the composition of both expressions make up a sign-extension, and if so, provide the base expression.IEAssign.getSrcOperand()Retrieve the source operand of this assignment.IEReturn.getValue()Get the primary return value expression.IESlice.getWholeExpression()Retrieve the unsliced expression.IEGeneric.half()Retrieve the lower half-part of this IRE.static IEGenericstatic IEGenericAs per IEEE 754-1985 floating-point standard, is NaN a number which exponent is filled with ones and a non-zero number in the mantissaIEGeneric.leftShift(int shift) left shift of an expressionIEGeneric.leftShift(int shift, int bitsize) left shift of an expression, with an optionalslice(int, int)IEGeneric.lsb()Return the least significant bit (lsb) of an expression.IEGeneric.msb()Return the most significant bit (msb) of an expression.static IEGenericstatic IEGenericstatic IEGenericIEGeneric.part(int cnt) Equivalent toslice(0, cnt)static IEGenericEUtil.replaceSubExpressionRecursive(IEGeneric stm, IEGeneric src, IEGeneric dst) static IEGenericEUtil.replaceSubExpressionRecursive(IEGeneric stm, IEGeneric src, IEGeneric dst, EVisitResults results) static IEGenericstatic IEGenericEVarCopyFinder.retrieveVariableForRegister(IERoutineContext ctx, IEGeneric exp, Collection<Integer> filters, boolean createIfNotFound, Long irOffset) static IEGenericEUtil.reversePredicate(IEGeneric predicate) IEGeneric.rightShift(int shift) right shift of an expressionIEGeneric.rightShift(int shift, int bitsize) right shift of an expression, with an optionalslice(int, int)static IEGenericEUtil.safeExtend(IEGeneric a, int bitsize, boolean signExtend) Safely extend anIEGeneric.static IEGenericSign-extend operation IRE.IEGeneric.signExtend(int newBitsize) Sign extend the currentIEGeneric.IEGeneric.slice(int begin) Equivalent toslice(begin,.bitsize)IEGeneric.slice(int begin, int end) Slice of anIEGeneric.Slice of anIEGeneric.IEGeneric.topHalf()Retrieve the top half-part of this IRE.static IEGenericTruncate operation IRE.static IEGenericZero-extend operation IRE.IEGeneric.zeroExtend(int newBitsize) Zero extend the currentIEGenericMethods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return types with arguments of type IEGenericModifier and TypeMethodDescriptionFind the parent of the the provided child element.Find the parent of the the provided child element.IECall.getArguments()Retrieve a read-only list of arguments provided to this ECall.IESwitch.getCases()IEGroup.getElements()IEOperation.getOperands()Retrieve the list of operands.IEUntranslatedInstruction.getParameterExpressions()EUtil.getParents(IEGeneric expression, IEGeneric value) Retrieve all the parents of a value.IECompose.getParts()Get a read-only, copy-list of the parts that make up this composition, from lowest bits to highest bits.IECall.getReturnExpressions()Retrieve a read-only list of return expressions.IEUntranslatedInstruction.getReturnExpressions()Get the tuple returned by this IR.IECall.getSpoiledExpressions()Retrieve a read-only list of expressions spoiled by this ECall.EUtil.getSubExpressions(IEGeneric e) Collect the sub-expressions of an IRE.IEReturn.getValues()Get the list of return value expressions.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type IEGenericModifier and TypeMethodDescriptionstatic IECondEUtil.abs(IERoutineContext ctx, IEGeneric a) OperationMath#abs(int, int)applied toIEGenericstatic IEOperationstatic IEOperationvoidstatic IEOperationstatic IEOperationstatic IEGenericEUtil.buildCarryFlag(IEGeneric a, IEGeneric b, IEGeneric result, boolean addition, boolean nativeOp) Generate an IR expression computing the carry flag bit of an integer addition or subtraction operation.static IEGenericEUtil.buildOverflowFlag(IEGeneric a, IEGeneric b, IEGeneric result, boolean addition) Generate an IR expression computing the overflow flag bit of an integer addition or subtraction operation.static intEUtil.calculateComplexity(IEGeneric e) Calculate the trivial complexity metric for the provided IR expression.static IEGenericEUtil.checkFalse(IEGeneric e) static IEGenericstatic IEGenericEUtil.cmpFloat(OperationType op, IEGeneric op1, IEGeneric op2) EUtil.collectVars(IEGeneric e) static voidEUtil.collectVars(IEGeneric e, Collection<IEVar> sink) Collect all EVars of an expression.static IEGenericEUtil.compose(IERoutineContext ctx, IEGeneric... elts) Create a composition if the provided list of elements contains at least two entries, else return the single element.static booleanIndicates if the target expression contains any token expressionstatic booleanEUtil.containsMemoryAccess(IEGeneric e) Indicates if the generic expression contains any memory access (meaningIEMem)static booleanEUtil.containsUndeterminedInvocations(IEGeneric e) Indicates if the generic expression invokes any undetermined kind of call (meaningIECall,IEJumpFarorIEUntranslatedInstruction)voidIEGeneric.copyProperties(IEGeneric srcExp) Copy the base properties from the provided IR source expression to this expression.static intEUtil.countExpressionPresence(IEGeneric e, IEGeneric target) Recursively count (using deep equality) how many times the provided target is seen in the input expression.static voidEUtil.countExpressionsPresence(IEGeneric e, List<IEGeneric> targets, int[] acounts) Recursively count (using deep equality) how many times each of the provided targets is seen in the input expression.static intEUtil.countSubExpressions(IEGeneric e) Collect sub-expressions of the input expression and return the cardinal of that collection.static intEUtil.countVariablePresence(IEGeneric e, IEVar target) Count the number of times anIEVaris present in an expression.static intEUtil.countVariableUse(IEGeneric e) static IEOperationEUtil.createConversionOperation(OperationType convOperator, IEGeneric src, int dstSize) Create a conversion operation: an integer truncation, integer extension (zero or signed), float truncation or extension, float-to-int and int-to-float conversion.static IEOperationEUtil.createResizeOperation(IEGeneric src, int dstSize, boolean signed) Create a resize operation operation: truncation, zero-extension, or sign-extension.static IEOperationstatic IEOperationstatic IEOperationIEAssign.duplicateWithNewOperands(IEGeneric dst, IEGeneric src) static IEOperationstatic IEImmEUtil.evaluate_preVerified(IEGeneric e) static IEImmEUtil.evaluate_preVerified(IEGeneric e, EState state) static longEUtil.evaluateAddress_preVerified(IEGeneric e) static longEUtil.evaluateAddress_preVerified(IEGeneric e, EState state) static longstatic longEUtil.evaluateUnsignedLong_preVerified(IEGeneric e, EState state) static IEGenericExtend anIEGeneric.static IECondEUtil.fabs(IERoutineContext ctx, IEGeneric a) OperationMath#abs(float, float)applied toIEGenericFind the parent of the the provided child element.IEGeneric.findParent(IEGeneric elt) Find the parent of the first instance of the provided child element.IEGeneric.findParent(IEGeneric elt, int start) Find the parent of the the provided child element.static IECondEUtil.fmax(IERoutineContext ctx, IEGeneric a, IEGeneric b) OperationMath.max(float, float)applied toIEGenericstatic IECondEUtil.fmin(IERoutineContext ctx, IEGeneric a, IEGeneric b) OperationMath.min(float, float)applied toIEGenericstatic IEOperationstatic OperationTypeEUtil.getOperation(IEGeneric e, OperationType... optypes) EUtil.getParents(IEGeneric expression, IEGeneric value) Retrieve all the parents of a value.intFunctionOptype.getResultBitsize(IEGeneric... opnds) static IEGenericEUtil.getSignExtensionBase(IEGeneric e) Check if an IR expression looks like a sign-extension operation, and if so, provide the base expression.static IEGenericEUtil.getSignExtensionBase(IEGeneric base, IEGeneric extend) Check if the composition of both expressions make up a sign-extension, and if so, provide the base expression.EUtil.getSubExpressions(IEGeneric e) Collect the sub-expressions of an IRE.EUtil.getUsedVarIds(IEGeneric e) static IEVarEUtil.getVarSlice(IEGeneric e) static IntegerEUtil.getVarSliceId(IEGeneric e) static IEOperationstatic IEOperationstatic IEOperationstatic booleanEUtil.hasExplicitlyUsedVar(IEGeneric e, IEVar target) static booleanEUtil.hasNoSideEffect(IEGeneric e) Determine if an IR expression is side-effect free.static booleanEUtil.hasNoTypeInfo(IEGeneric e) Determine if the provided IR expression embeds no amount at all of type information.static booleanEUtil.hasSameType(IEGeneric e1, IEGeneric e2) static booleanEUtil.hasSideEffect(IEGeneric e) The opposite ofEUtil.hasNoSideEffect(IEGeneric).static booleanEUtil.hasTypeInfo(IEGeneric e) Determine if the provided IR expression embeds some type information.static IEGenericstatic booleanEUtil.isAssignedIn(BasicBlock<IEStatement> bb, IEGeneric checkedDst) Check that an IRE is assigned in a basic block.static booleanVerify that an IRE is a single-bit immediate set to 1 (technically, -1).static booleanVerify that an IRE is a single-bit immediate set to 0.static booleanEUtil.isComparableOperation(IEGeneric e) ""Boolean"" comparable operation (eq/neq and all greater/lesser comparisons)static booleanEUtil.isExpressionModified(IEStatement insn, IEGeneric target, boolean defuse) static booleanEUtil.isImmediate(IEGeneric e) static booleanEUtil.isImmNonZero(IEGeneric e) static booleanstatic booleanEUtil.isImmValue(IEGeneric e, long value) static booleanEUtil.isImmValue(IEGeneric e, BigInteger value) static booleanstatic booleanstatic booleanEUtil.isLikeImmediate(IEGeneric a) Determine if the IRE is an EImm or a slice or composition of immediates.static booleanEUtil.isLikeLongImmediate(IEGeneric e) Determine if the expression is equivalent to an EImm that can be read as alongprimitive.static booleanEUtil.isLikeLongImmediate(IEGeneric e, boolean unsigned) Determine if the expression is equivalent to an EImm that can be read as alongprimitive.static booleanEUtil.isLogicalOperation(IEGeneric e) ""Boolean"" operation (and, or, not, eq/neq and all greater/lesser comparisons)static booleanEUtil.isLongImmediate(IEGeneric e) Determine if the expression is an EImm that can be read as alongprimitive.static booleanEUtil.isLongImmediate(IEGeneric e, boolean unsigned) Determine if the expression is an EImm that can be read as alongprimitive.static booleanEUtil.isMatchDuaryOperation(IEGeneric e, OperationType wantedOperationType, IEGeneric wantedOperand1, IEGeneric wantedOperand2) static booleanEUtil.isMinusOne(IEGeneric e) Verify that an IRE is an immediate holding the value -1.static IEGenericAs per IEEE 754-1985 floating-point standard, is NaN a number which exponent is filled with ones and a non-zero number in the mantissastatic booleanEUtil.isNotPredicate(IEGeneric p, IEGeneric p2) Indicate if p == !p2.static booleanVerify that an IRE is an immediate holding 1.static booleanEUtil.isOperation(IEGeneric e, OperationType optype) Determine if theIEGenericis anIEOperation.static booleanEUtil.isOperation(IEGeneric e, OperationType... optypes) Determine if theIEGenericis anIEOperation.static booleanEUtil.isOperationSize(IEGeneric e, int bitsize) static booleanEUtil.isStrictLogicalOperation(IEGeneric e) Logical operations that should have logical operands (and, or, not)static booleanstatic booleanEUtil.isVarOrVarSlice(IEGeneric e) static booleanVerify that an IRE is a Zero representation (EImm(0) or ESlice(0, x, x))static booleanEUtil.isZeroExtend(IEGeneric e) static IEOperationstatic IEOperationstatic IEOperationstatic IEOperationstatic IECondEUtil.max(IERoutineContext ctx, IEGeneric a, IEGeneric b, boolean signed) OperationMath.max(int, int)applied toIEGenericstatic IECondEUtil.min(IERoutineContext ctx, IEGeneric a, IEGeneric b, boolean signed) OperationMath.min(int, int)applied toIEGenericstatic IEOperationstatic IEOperationstatic IEGenericstatic IEGenericstatic IEGenericstatic IEOperationEUtil.op(OperationType operator, IEGeneric a) static IEOperationEUtil.op(OperationType operator, IEGeneric a, IEGeneric b) static IEOperationstatic IEOperationstatic IEOperationvoidETypeInfo.recordConflict(String msg, IEGeneric elt, IWildcardType currentType, IWildcardType wantedType) IESwitch.removeCase(IEGeneric value) static IEOperationstatic IEOperationintIEStatement.replaceDefinedVar(IEVar var, IEGeneric repl) Replace (deep) the variables that are defined by this statement.voidIECompose.replacePart(int index, IEGeneric newPart) Replace a part by index.booleanIEGeneric.replaceSubExpression(IEGeneric oldExp, IEGeneric newExp) Shallow replacement, by reference.static IEGenericEUtil.replaceSubExpressionRecursive(IEGeneric stm, IEGeneric src, IEGeneric dst) static IEGenericEUtil.replaceSubExpressionRecursive(IEGeneric stm, IEGeneric src, IEGeneric dst, EVisitResults results) default intIEStatement.replaceUsedVar(IEVar var, IEGeneric repl) Replace (deep) the variables that are defined by this statement.intIEGeneric.replaceVar(IEVar var, IEGeneric repl) Deep replace.intIEStatement.replaceVar(IEVar var, IEGeneric repl, boolean doNotReplaceDefinedVariables) Deep replace.static IEGenericstatic booleanEUtil.resolveExpressionsBackward(Object name, IEConverter<?> conv, List<IEStatement> r, IEGeneric... targets) Apply a list of IEStatements to user targets, resolving expression starting from lastIEStatementto first.static IEGenericEVarCopyFinder.retrieveVariableForRegister(IERoutineContext ctx, IEGeneric exp, Collection<Integer> filters, boolean createIfNotFound, Long irOffset) static IEGenericEUtil.reversePredicate(IEGeneric predicate) static IEGenericEUtil.safeExtend(IEGeneric a, int bitsize, boolean signExtend) Safely extend anIEGeneric.static intEUtil.sameBitsize(IEGeneric... elts) If all the provided expressions have the same bitsize, return it.static intEUtil.sameBitsizeAllowNulls(IEGeneric... elts) If all the provided expressions have the same bitsize, return it.static IEOperationvoidIECall.setCallsite(IEGeneric callsite) voidIECond.setCondition(IEGeneric e) voidIEJumpWithOptionalCondition.setCondition(IEGeneric condition) voidIESwitch.setControlExpression(IEGeneric controlExpression) voidIECond.setExpressionFalse(IEGeneric e) voidIECond.setExpressionTrue(IEGeneric e) voidIEJumpFar.setJumpsite(IEGeneric jumpSite) voidIEUntranslatedInstruction.setParameterExpressions(IEGeneric... params) voidIEMem.setReference(IEGeneric reference) voidIECall.setReturnExpression(int index, IEGeneric exp) Update a return expression.voidIEUntranslatedInstruction.setReturnExpression(IEGeneric expression) Set a single return expression.voidIEUntranslatedInstruction.setReturnExpressions(IEGeneric... expressions) voidIECall.setReturnLocation(IEGeneric loc) Set the optional return location (address) for the call.voidIEMem.setSegment(IEGeneric optionalSegment) voidSet the primary return value expression.static IEOperationstatic IEOperationstatic IEGenericSign-extend operation IRE.static IEOperationstatic IEOperationstatic IEGenericTruncate operation IRE.voidFunctionOptype.validateOperands(IEGeneric... opnds) booleanIEGeneric.visitDepthPost(IEVisitor visitor, IEGeneric parent) Depth-first search, post-order visit of an expression tree or sub-tree.booleanIEGeneric.visitDepthPost(IEVisitor visitor, IEGeneric parent, EVisitResults results) Depth-first search, post-order visit of an expression tree or sub-tree.booleanIEGeneric.visitDepthPre(IEVisitor visitor, IEGeneric parent) Depth-first search, pre-order visit of an expression tree or sub-tree.booleanIEGeneric.visitDepthPre(IEVisitor visitor, IEGeneric parent, EVisitResults results) Depth-first search, pre-order visit of an expression tree or sub-tree.static IEOperationstatic IEGenericZero-extend operation IRE.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with type arguments of type IEGenericModifier and TypeMethodDescriptionvoidIEGeneric.collectSubExpressions(Collection<IEGeneric> sink) Perform a shallow collection of the sub-expressions of this expression.default voidIEStatement.collectSubExpressions(Collection<IEGeneric> sink) voidIEStatement.collectSubExpressions(Collection<IEGeneric> sink, Boolean usedOnly) Perform a shallow collection of the sub-expressions of this statement.voidIEStatement.collectUsedExpressions(Collection<Couple<IEGeneric, IEGeneric>> sink) Perform a shallow collection of the first-level expressions used by this statement.voidIEStatement.collectUsedExpressions(Collection<Couple<IEGeneric, IEGeneric>> sink) Perform a shallow collection of the first-level expressions used by this statement.static IEGenericEUtil.compose(IERoutineContext ctx, Collection<IEGeneric> elts) Create a composition if the provided list of elements contains at list two entries, else return the single element.static voidEUtil.countExpressionsPresence(IEGeneric e, List<IEGeneric> targets, int[] acounts) Recursively count (using deep equality) how many times each of the provided targets is seen in the input expression.default booleanVisit the constituents of this expression, and check if one of them is passing the provided test.static List<IWildcardType>EUtil.getWildcardTypes(IWildcardTypeManager etypeman, Collection<IEGeneric> elts) booleanEPrototypeHandler.retrieveFromPrototype(List<IEGeneric> params, List<IWildcardType> rettypes) booleanIEPrototypeHandler.retrieveFromPrototype(List<IEGeneric> params, List<IWildcardType> rettypes) Collect parameter EVars and return type(s).voidIEUntranslatedInstruction.setParameterExpressions(Collection<IEGeneric> params) voidIEUntranslatedInstruction.setReturnExpressions(List<IEGeneric> expressions) Set the tuple returned by this IR.voidIEReturn.setValues(Collection<IEGeneric> values) Set the list of return value expressions.Constructors in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type IEGenericModifierConstructorDescriptionEntry(String msg, IEGeneric elt, IWildcardType currentType, IWildcardType wantedType) -
Uses of IEGeneric in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler with type parameters of type IEGenericModifier and TypeMethodDescriptionstatic <T extends IEGeneric>
TECompiler.cc(String s, IEGlobalContext gctx, Class<T> clazz) Convenience method to parse an IR expression or statement.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler that return IEGenericModifier and TypeMethodDescriptionstatic IEGenericECompiler.cc(String s, IEGlobalContext gctx) Convenience method to parse an IR expression or statement.Generate an expression using the template and the provided map of IR element nodes.ECompiler.CompiledExpression.getExpression()EPatternMatcher.getInputExpression()EPatternMatcher.Result.getInputExpression()EPatternMatcher.Result.getMatchedExpression()EPatternMatcher.Result.getMatchedLeaf(int index) EPatternMatcher.Result.getMatchedParent()EPatternMatcher.Result.getOptimizedExpression()Process a matched node.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler that return types with arguments of type IEGenericModifier and TypeMethodDescriptionEExpressionMatcher.getIRDepthsMap()EPatternMatcher.getIRDepthsMap()Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler with parameters of type IEGenericModifier and TypeMethodDescriptionbooleanDetermine whether the provided IR expressions match the templatesbooleanProcess a matched node.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler with type arguments of type IEGenericModifier and TypeMethodDescriptionvoidEExpressionMatcher.setIRDepthsMap(Map<IEGeneric, Integer> IRDepthsMap) voidEPatternMatcher.setIRDepthsMap(Map<IEGeneric, Integer> iRDepthsMap) Constructors in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.compiler with parameters of type IEGenericModifierConstructorDescriptionCompiledExpression(IERoutineContext ctx, IEGeneric expr) EPatternMatcher(EPatternCompiler.EPattern pattern, IEGeneric exp, IERoutineContext ctx) -
Uses of IEGeneric in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt that return IEGenericModifier and TypeMethodDescriptionprotected IEGenericAbstractEExpressionOptimizer.doSubstitution(IEGeneric e, SubstitutionDefinition... substitutions) Attempt to apply the first matchingSubstitutionDefinitionon anIEGenericexpression.AbstractEExpressionOptimizer.EOR.getExpression()AbstractEExpressionOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) AbstractEOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) The default implementation does nothing and returns null.AbstractEPatternOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) IEOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) Optimize a single expression.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.opt with parameters of type IEGenericModifier and TypeMethodDescriptionprotected IEGenericAbstractEExpressionOptimizer.doSubstitution(IEGeneric e, SubstitutionDefinition... substitutions) Attempt to apply the first matchingSubstitutionDefinitionon anIEGenericexpression.protected abstract AbstractEExpressionOptimizer.EORAbstractEExpressionOptimizer.optimizeExpression(IEGeneric e) Attempt to optimize expressions.AbstractEExpressionOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) AbstractEOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) The default implementation does nothing and returns null.AbstractEPatternOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) IEOptimizer.performOnExpression(IEGeneric exp, IERoutineContext ectx) Optimize a single expression.voidAbstractEExpressionOptimizer.EOR.safeCopyType(IEGeneric src)