# Interface: 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](#getMemoryAccessInfo()) is set to NONE and can be customized.

## Static Field: TAG_CUSTOM_NAME
Type: `java.lang.String`

Constant value: `CUSTOM_NAME`
Description: Tag name for an optional entry holding the custom name of this untranslated IR, possibly better suited than the native mnemonic name. 

 Value: String.

## Method: addSideEffectDefinedVariable
- parameter: `vars`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar[]`


## Method: addSideEffectSpoiledVariable
- parameter: `vars`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar[]`


## Method: addSideEffectUsedVariable
- parameter: `vars`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar[]`


## Method: getMemoryAccessInfo
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.MemoryAccessInfo`


## Method: getNativeAddress
- return type: `long`


## Method: getNativeMnemonic
- return type: `java.lang.String`


## Method: getParameterExpression
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: 
parameter: index: 
return: 

## Method: getParameterExpressions
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: 
return: the actual list \(can be modified; do not insert nulls\)

## Method: getReturnExpression
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Retrieve the primary return expression \(if the IR returns a tuple, the primary return expression if the first item in the tuple\).
return: 

## Method: getReturnExpressions
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: Get the tuple returned by this IR.
return: the actual list \(can be modified; do not insert nulls\)

## Method: getSideEffectDefinedVariables
- return type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar>`


## Method: getSideEffectSpoiledVariables
- return type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar>`


## Method: getSideEffectUsedVariables
- return type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar>`


## Method: getTag
- return type: `java.lang.Object`

Description: Get the optional default tag.
return: 

## Method: getTag
- parameter: `key`, type: `java.lang.String`
- return type: `java.lang.Object`

Description: Retrieve a tag.
parameter: key: 
return: 

## Method: getTags
- return type: `java.util.Map<java.lang.String,java.lang.Object>`

Description: Retrieve a copy of all the tags. The tag with the null key is the default tag.
return: 

## Method: setBreakingFlow
- parameter: `flowinfo`, type: `com.pnfsoftware.jeb.core.units.code.IFlowInformation`


## Method: setInstructionFlags
- parameter: `insnFlags`, type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.InstructionFlags>`


## Method: setMemoryAccessInfo
- parameter: `info`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.MemoryAccessInfo`


## Method: setNativeAddress
- parameter: `nativeAddress`, type: `long`


## Method: setNativeMnemonic
- parameter: `mnemonic`, type: `java.lang.String`


## Method: setParameterExpressions
- parameter: `params`, type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: 
parameter: params: 

## Method: setParameterExpressions
- parameter: `params`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric[]`


## Method: setReturnExpression
- parameter: `expression`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric`

Description: Set a single return expression.
parameter: expression: an expression, or null to specify that this IRE does not return            anything

## Method: setReturnExpressions
- parameter: `expressions`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric>`

Description: Set the tuple returned by this IR.
parameter: expressions: a list consisting of non\-null expressions

## Method: setReturnExpressions
- parameter: `expressions`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric[]`


## Method: setRoutineCall
- parameter: `flowinfo`, type: `com.pnfsoftware.jeb.core.units.code.IFlowInformation`


## Method: setTag
- parameter: `tag`, type: `java.lang.Object`

Description: Set an optional default tag. Same as [setTag\(null, object\)](#setTag(String, Object)). The tag must be [serializable](Ser).
parameter: tag: a simple immutable Java object annotated `@Ser`

## Method: setTag
- parameter: `key`, type: `java.lang.String`
- parameter: `tag`, type: `java.lang.Object`

Description: Store a tag. Same as [getTag\(null\)](#getTag(String))
parameter: key: mandatory key
parameter: tag: null to remove; else, must be a simple immutable Java object

