ERC32
@Erc32 Reference
Erc32 Reference
Properties
| Name | Type | Description | 
|---|---|---|
| CPUId | uint32_t | |
| CPUType | int32_t | |
| Class | *void | Class object | 
| Component | *void | Pointer to component object if part of component | 
| LoggingFlags | uint64_t | Flags for logging info | 
| Name | *char | Object name | 
| TimeSource | *void | Time source object | 
| asr | [uint32_t; 32] | |
| config.exitOnSync | uint8_t | |
| config.logCallAndJump | uint32_t | |
| cpi | double | Cycles per instruction | 
| cwp | *void | |
| devices | temu_IfaceRefArray | |
| extraRegs | [uint32_t; 32] | |
| fprs | [uint32_t; 32] | |
| freq | int64_t | Frequency in Hz | 
| fsr | uint32_t | |
| g | [uint32_t; 8] | |
| gprs | [uint32_t; 128] | |
| i_npc | uintptr_t | Intermediate code nPC | 
| i_pc | uintptr_t | Intermediate code PC | 
| idleSteps | int64_t | |
| ipc | double | Instructions per cycle | 
| irqClient | temu_IfaceRef/ <unknown> | Interrupt controller (for ACKs) | 
| logTrampolines | uint8_t | |
| memAccess | temu_IfaceRef/ <unknown> | Level 1 memory access interface (MMU) | 
| memAccessL2 | temu_IfaceRef/ <unknown> | Level 2 memory access interface (physical) | 
| memSpace | *void | . | 
| memory | temu_IfaceRef/ <unknown> | Memory interface | 
| mmuCtrl | uint32_t | |
| mmuCtxt | uint32_t | |
| mmuCtxtPtr | uint32_t | |
| mmuFaultAddr | uint32_t | |
| mmuFaultStat | uint32_t | |
| nextEvent | int64_t | Next event | 
| npc | uint32_t | Next program counter register (%npc) | 
| parentTimeSource | *void | Parent time source | 
| pc | uint32_t | Program counter register (%pc) | 
| pdcManager | temu_IfaceRef/ <unknown> | Pre-decode cache manager (normally memory space) | 
| pendingInterrupts | uint16_t | |
| powerState | uint32_t | |
| psr | uint32_t | Processor state register | 
| startSteps | int64_t | Start steps of the time source | 
| state | int32_t | |
| steps | int64_t | Steps of the time source | 
| stickyFlags | uint32_t | Set bit 0 to 1 to not exit CPU on halted mode. | 
| targetExec | temu_IfaceRef/ <unknown> | Target execution interface | 
| targetSteps | int64_t | Target steps of the time source | 
| tbr | uint32_t | |
| wim | uint32_t | 
Interfaces
| Name | Type | Description | 
|---|---|---|
| BinaryTranslationIface | temu::BinaryTranslationControlIface | |
| ClockIface | ClockIface | |
| CpuIface | temu::CpuIface | |
| ExecIface | temu::TargetExecutionIface | |
| InvalidMemAccessIface | MemAccessIface | |
| IrqIface | IrqCtrlIface | |
| MemoryIface | MemoryIface | |
| ObjectIface | ObjectIface | |
| PowerIface | PowerIface | |
| ResetIface | ResetIface | |
| SparcIface | SparcIface | 
Commands
| Name | Description | 
|---|---|
| assemble | Assemble instruction | 
| auto-log-block | Log translation of block when translating for address | 
| auto-log-instructions | Log instructions in block with the given address | 
| break-on-trap | Break on trap | 
| chainBlocks | Manually chain blocks | 
| delete | Dispose instance of Erc32 | 
| disable-block-entry-logging | Disable logging on block entries. | 
| disable-call-target-profiling | Disable call target profiling for triggering DBT. | 
| disable-dbt-logging | Disable logging when translating code. | 
| disable-dbt-validation | Disable validation of emitted machine code. | 
| disable-fallthrough-profiling | Dis profiling of fallthroughs for triggering DBT. | 
| disable-hard-code-reset | Disable hard resets of DBT emitter cache. | 
| disable-indirect-jump-profiling | Disable profiling of indirect jump targets for triggering DBT. | 
| disable-jit-timing | Disable jit-timing. | 
| disable-off-page-branch-profiling | Disable profiling of off-page branch targets for triggering DBT. | 
| disable-on-page-branch-profiling | Disable profiling of on-page branch targets for triggering DBT. | 
| disable-translation-logging | Disable jit-logging. | 
| disableAutoChain | Disable binary translation block chaining. | 
| disableProfiling | Disable profiling mode | 
| disableStats | Disable statistics | 
| disableTranslation | Disable binary translation. | 
| disableTraps | Disable traps. | 
| disassemble | Disassemble code | 
| disassembleBlock | Disassemble binary translated code block. | 
| disassembleBlockIR | Disassemble LLVM IR of translated code block | 
| disassembleBlockOption | Set option for disassembler. Switch between AT&T (default) and Intel (alternate) syntax. Enable / disable insruction latency in output. | 
| enable-block-entry-logging | Enable logging on block entries. | 
| enable-call-target-profiling | Enable call target profiling for triggering DBT. | 
| enable-dbt-logging | Enable logging when translating code. | 
| enable-dbt-validation | Enable validation of emitted machine code. | 
| enable-fallthrough-profiling | Enable profiling of fallthroughs for triggering DBT. | 
| enable-hard-code-reset | Enable hard resets of DBT emitter cache. | 
| enable-indirect-jump-profiling | Enable profiling of indirect jump targets for triggering DBT. | 
| enable-jit-timing | Enable jit-timing. | 
| enable-off-page-branch-profiling | Enable profiling of off-page branch targets for triggering DBT. | 
| enable-on-page-branch-profiling | Enable profiling of on-page branch targets for triggering DBT. | 
| enable-translation-logging | Enable jit-logging. | 
| enableAutoChain | Enable binary translation block chaining. | 
| enableProfiling | Enable profiling mode | 
| enableStats | Enable statistics | 
| enableTranslation | Enable binary translation. | 
| enableTraps | Enable traps. | 
| flushProfile | Flush profile data | 
| pregs | Print registers for CPU | 
| print-atc | Print ATC for CPU | 
| print-blocks | Show block connectivity | 
| pstat | Print CPU stats | 
| pwin | Print register window. | 
| resetStats | Reset statistics counters | 
| set-binary-translation-threshold | Set number of times a call target must be executed to trigger translation. | 
| setPC | Set PC (and nPC) | 
| setReg | Set register | 
| stacktrace | Print a stacktrace starting at the current PC. The trace follows firstly the register windows if %i7 points at a call or jmpl addr, %o7 instruction. After register windows have been followed, the stacktrace walks through the in memory stack. Note that leaf functions are detected if %i7 < %o7 ⇐ %pc. | 
| translateBlock | Translate block. | 
| translateFunc | Translate function. | 
Command assemble Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| inst | string | yes | Instruction to assemble. | 
| pa | int | no | Physical address | 
| va | int | no | Virtual address | 
Command chainBlocks Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| arm | string | no | Name of arm in source block (nt/not-taken or t/taken). Defaults to fall through arm (not-taken) | 
| source | int | yes | Physical start address of source block. | 
| target | int | yes | Physical start address of target block. | 
Command disableStats Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| stat | string | yes | Name of statistics (executed-translated-instructions, executed-translated-blocks) | 
Command disassemble Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| count | int | no | Number of instructions | 
| pa | int | no | Physical address | 
| va | int | no | Virtual address | 
Command disassembleBlock Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| pa | int | no | Physical address of block | 
| va | int | no | Virtual address of block | 
Command disassembleBlockIR Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| pa | int | no | Physical address of block | 
| va | int | no | Virtual address of block | 
Command disassembleBlockOption Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| option | string | yes | Option to set: 'default-syntax', 'alternate-syntax', 'latency', 'no-latency'. | 
Command enableStats Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| stat | string | yes | Name of statistics (executed-translated-instructions, executed-translated-blocks) | 
Command pwin Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| win | int | no | Window ID (-1 = default == current window). | 
Command set-binary-translation-threshold Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| threshold | int | yes | Threshold | 
Command setPC Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| npc | int | no | New %npc (note if omitted %npc = %pc + 4) | 
| pc | int | yes | New %pc | 
Command setReg Arguments
| Name | Type | Required | Description | 
|---|---|---|---|
| reg | string | yes | Register name | 
| value | int | yes | Value |