# Class: com.pnfsoftware.jeb.core.units.code.android.ir.DExecutionParameters

`dexdec` IR emulation parameters object. Such objects are used with a State's [execute\(\)](IDState#execute(DExecutionParameters)) method. 

 This object is used to specify a list of IR instructions, execute them or a region of that list, with restrictions.

## Constructor: DExecutionParameters
- parameter: `insnmap`, type: `java.util.SortedMap<java.lang.Integer,com.pnfsoftware.jeb.core.units.code.android.ir.IDInstruction>`

Description: Create an object.
parameter: insnmap: mandatory instruction map: key=IR offset, value= IR instruction

## Constructor: DExecutionParameters
- parameter: `insnmap`, type: `java.util.SortedMap<java.lang.Integer,com.pnfsoftware.jeb.core.units.code.android.ir.IDInstruction>`
- parameter: `dalvik2irmap`, type: `java.util.Map<java.lang.Integer,java.lang.Integer>`
- parameter: `ir2dalvikmap`, type: `java.util.Map<java.lang.Integer,java.lang.Integer>`

Description: Create an object.
parameter: insnmap: mandatory instruction map: key=IR offset, value= IR instruction
parameter: dalvik2irmap: optional map of dalvik offset mapping to a matching IR instruction offset
parameter: ir2dalvikmap: optional map

## Constructor: DExecutionParameters
- parameter: `cfg`, type: `com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG<com.pnfsoftware.jeb.core.units.code.android.ir.IDInstruction>`

Description: Create an object, ready to emulate an entire IR routine.
parameter: cfg: mandatory

## Constructor: DExecutionParameters
- parameter: `ctx`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDMethodContext`

Description: Create an object, ready to emulate an entire IR routine.
parameter: ctx: method context

## Constructor: DExecutionParameters
- parameter: `cfg`, type: `com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG<com.pnfsoftware.jeb.core.units.code.android.ir.IDInstruction>`
- parameter: `exdata`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDTryData`

Description: Create an object, ready to emulate an entire IR routine.
parameter: cfg: CFG to emulate
parameter: exdata: optional exception data

## Field: iterationCountLeft
Type: `java.lang.Integer`
Description: The count of iterations left. This counter is separate than [IDState#getIterationCountLeft()](IDState#getIterationCountLeft())\! Every time an IR instruction is emulated, this counter is decreased. An exception is raised if it reaches 0. \(An exception would also be raised if the [IDState](IDState)'s counter reaches 0.\)

## Field: pc
Type: `java.lang.Integer`
Description: Starting IR program counter.

## Field: pcExpectedTermination
Type: `java.lang.Integer`
Description: Optional. The emulation will stopped, and the last execution return result, if the PC gets to reach this value. \(The IR instruction at `pcExpectedTermination` is not executed\!\)

## Field: pcThresholdMax
Type: `java.lang.Integer`
Description: Optional. The emulation will stop if the PC gets greater or equal than this value.

## Field: pcThresholdMin
Type: `java.lang.Integer`
Description: Optional. The emulation will stop if the PC gets less than this value.

## Method: addInitialValue
- parameter: `varid`, type: `int`
- parameter: `value`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDImm`

Description: Add an initial variable value.
parameter: varid: variable id
parameter: value: initial value

## Method: getCFG
- return type: `com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG<com.pnfsoftware.jeb.core.units.code.android.ir.IDInstruction>`

Description: Get the CFG being emulated.
return: CFG, or null

## Method: getDalvikToIRMap
- return type: `java.util.Map<java.lang.Integer,java.lang.Integer>`

Description: Get the Dalvik\-to\-IR offset map.
return: Dalvik\-to\-IR offset map, or null

## Method: getExceptionData
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDTryData`

Description: Get the exception data used during emulation.
return: exception data, or null

## Method: getIRToDalvikMap
- return type: `java.util.Map<java.lang.Integer,java.lang.Integer>`

Description: Get the IR\-to\-Dalvik offset map.
return: IR\-to\-Dalvik offset map, or null

## Method: getInitialValues
- return type: `java.util.Map<java.lang.Integer,com.pnfsoftware.jeb.core.units.code.android.ir.IDImm>`

Description: Get the initial variable values.
return: read\-only map of variable ids to initial values

## Method: getInstructionMap
- return type: `java.util.Map<java.lang.Integer,com.pnfsoftware.jeb.core.units.code.android.ir.IDInstruction>`

Description: Get the IR instruction map.
return: instruction map keyed by IR offset

## Method: prepareIterations
- parameter: `itercnt`, type: `java.lang.Integer`

Description: Reset all parameters to null, except for the instruction map \(and associated optional maps like dalvik\-to\-ir, ir\-to\-dalvik maps\).
parameter: itercnt: new iteration count limit

