com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEUntranslatedInstruction |
Special IR statement that can be used to wrap non-standard, partially translated, or untranslated native code instructions. The untranslated native instruction can be seen as a blackbox; the IR EUntranslatedInstruction can be seen as a variant of ECall.
By default, IR-Evaluation fails and C-Generation yields basic boilerplate. Both can be customized in the converter.
Default memory access information
is set to NONE and can be
customized.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | TAG_CUSTOM_NAME | Tag name for an optional entry holding the custom name of this untranslated IR, possibly better suited than the native mnemonic name. |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract void | addSideEffectDefinedVariable(IEVar... vars) | ||||||||||
abstract void | addSideEffectSpoiledVariable(IEVar... vars) | ||||||||||
abstract void | addSideEffectUsedVariable(IEVar... vars) | ||||||||||
abstract MemoryAccessInfo | getMemoryAccessInfo() | ||||||||||
abstract long | getNativeAddress() | ||||||||||
abstract String | getNativeMnemonic() | ||||||||||
abstract IEGeneric | getParameterExpression(int index) | ||||||||||
abstract List<IEGeneric> | getParameterExpressions() | ||||||||||
abstract IEGeneric |
getReturnExpression()
Retrieve the primary return expression (if the IR returns a tuple, the primary return
expression if the first item in the tuple).
| ||||||||||
abstract List<IEGeneric> |
getReturnExpressions()
Get the tuple returned by this IR.
| ||||||||||
abstract Set<IEVar> | getSideEffectDefinedVariables() | ||||||||||
abstract Set<IEVar> | getSideEffectSpoiledVariables() | ||||||||||
abstract Set<IEVar> | getSideEffectUsedVariables() | ||||||||||
abstract Object |
getTag()
Get the optional default tag.
| ||||||||||
abstract Object |
getTag(String key)
Retrieve a tag.
| ||||||||||
abstract Map<String, Object> |
getTags()
Retrieve a copy of all the tags.
| ||||||||||
abstract void | setBreakingFlow(IFlowInformation flowinfo) | ||||||||||
abstract void | setMemoryAccessInfo(MemoryAccessInfo info) | ||||||||||
abstract void | setNativeAddress(long nativeAddress) | ||||||||||
abstract void | setNativeMnemonic(String mnemonic) | ||||||||||
abstract void | setParameterExpressions(Collection<IEGeneric> params) | ||||||||||
abstract void | setParameterExpressions(IEGeneric... params) | ||||||||||
abstract void |
setReturnExpression(IEGeneric expression)
Set a single return expression.
| ||||||||||
abstract void |
setReturnExpressions(List<IEGeneric> expressions)
Set the tuple returned by this IR.
| ||||||||||
abstract void | setReturnExpressions(IEGeneric... expressions) | ||||||||||
abstract void | setRoutineCall(IFlowInformation flowinfo) | ||||||||||
abstract void |
setTag(Object tag)
Set an optional default tag.
| ||||||||||
abstract void |
setTag(String key, Object tag)
Store a tag.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.IInstruction
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.IInstructionOperand
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.IResizableInstruction
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStatement
|
Tag name for an optional entry holding the custom name of this untranslated IR, possibly better suited than the native mnemonic name.
Value: String.
Retrieve the primary return expression (if the IR returns a tuple, the primary return expression if the first item in the tuple).
Get the tuple returned by this IR.
Get the optional default tag.
Retrieve a tag.
Retrieve a copy of all the tags. The tag with the null key is the default tag.
Set a single return expression.
expression | an expression, or null to specify that this IRE does not return anything |
---|
Set the tuple returned by this IR.
expressions | a list consisting of non-null expressions |
---|
Set an optional default tag. Same as setTag(null, object)
.
The tag must be serializable
.
tag | a simple immutable Java object annotated @Ser
|
---|
Store a tag. Same as getTag(null)
key | mandatory key |
---|---|
tag | null to remove; else, must be a simple immutable Java object |