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 |
|
config.measureExecTime |
uint8_t |
|
cpi |
double |
Cycles per instruction |
cwp |
*void |
|
devices |
temu_IfaceRefArray |
|
exitReason |
int32_t |
|
extraRegs |
[uint32_t; 32] |
|
fprs |
[uint32_t; 32] |
|
freq |
int64_t |
Frequency in Hz |
fsr |
uint32_t |
|
fsrInit |
uint32_t |
|
fsrSpill |
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 space. |
memory |
temu_IfaceRef/ <unknown> |
Memory interface |
mmuCtrl |
uint32_t |
|
mmuCtxt |
uint32_t |
|
mmuCtxtCount |
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 |
skipIdleTags |
uint64_t |
|
startSteps |
int64_t |
Start steps of the time source |
state |
int32_t |
|
stats.mmuCtrlWrites |
uint64_t |
|
stats.mmuCtxtPtrWrites |
uint64_t |
|
stats.mmuCtxtWrites |
uint64_t |
|
stats.raisedTraps |
uint64_t |
|
stats.takenInterrupts |
uint64_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 |
|
CodePatternIface |
temu::CodePatternIface |
|
CpuIface |
temu::CpuIface |
|
ExecIface |
temu::TargetExecutionIface |
|
InvalidMemAccessIface |
MemAccessIface |
|
IrqIface |
IrqCtrlIface |
|
MemoryIface |
MemoryIface |
|
ObjectIface |
ObjectIface |
|
PowerIface |
PowerIface |
|
RegisterIface |
temu::RegisterIface |
|
ResetIface |
ResetIface |
|
SparcIface |
SparcIface |
Commands
Name | Description |
---|---|
add-call |
Adds a call at the specific address. The call operation calls a predefined method which logs that it is invoked.It is primarily useful for debugging. |
add-idle |
Adds an explicit idle operation at the specific address. |
add-skip |
Adds a skip operation at the specific address. After this, the given number of instructions will be skipped. |
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-floating-point-translation |
Disable binary translation of floating point instructions. |
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-floating-point-translation |
Enable binary translation of floating point instructions. |
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. |
find-page-table-root |
Scan through the page tables starting with context zero and determine which page table roots can generate the translation. |
flushProfile |
Flush profile data |
pfregs |
Print floating point registers for CPU |
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. |
wake-up |
Wakes up the processor. |
Command add-idle Arguments
Name | Type | Required | Description |
---|---|---|---|
pa |
int |
yes |
Physical Address |
tag |
int |
no |
Tag of idle operation |
Command add-skip Arguments
Name | Type | Required | Description |
---|---|---|---|
pa |
int |
yes |
Physical Address |
steps |
int |
yes |
Steps to skip |
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 find-page-table-root Arguments
Name | Type | Required | Description |
---|---|---|---|
pa |
int |
no |
Physical Address |
va |
int |
yes |
Virtual Address |
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 |