LEON3

@Leon3 Reference

Properties

Name Type Description

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

Commands

Name Description

delete

Dispose instance of @Leon3

new

Create new instance of Leon3

Command new Arguments

Name Type Required Description

cpuid

int

no

cpuid in multiprocessor config

freq

double

no

frequency in Hz

name

string

yes

Name of object to create

Leon3 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

dCache

temu_IfaceRef/ <unknown>

L1 data cache (optional)

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]

iCache

temu_IfaceRef/ <unknown>

L1 instruction cache (optional)

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

AhbIface

AhbIface

BinaryTranslationIface

temu::BinaryTranslationControlIface

ClockIface

ClockIface

CodePatternIface

temu::CodePatternIface

CpuIface

temu::CpuIface

DCacheCtrlIface

temu::CacheCtrlIface

ExecIface

temu::TargetExecutionIface

ICacheCtrlIface

temu::CacheCtrlIface

InvalidMemAccessIface

MemAccessIface

IrqIface

IrqCtrlIface

MemoryIface

MemoryIface

MmuMemAccessIface

MemAccessIface

ObjectIface

ObjectIface

PowerIface

PowerIface

RegisterIface

temu::RegisterIface

ResetIface

ResetIface

SparcIface

SparcIface

Ports

Prop Iface Description

irqClient

IrqIface

interrupt controller interface

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 Leon3

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-call Arguments

Name Type Required Description

pa

int

yes

Physical Address

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 auto-log-block Arguments

Name Type Required Description

pa

int

yes

Physical Address

Command auto-log-instructions Arguments

Name Type Required Description

pa

int

yes

Physical Address

Command break-on-trap Arguments

Name Type Required Description

trap

string

yes

Trap name

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 enable-jit-timing Arguments

Name Type Required Description

print

int

no

Enable log-messages

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

Command translateBlock Arguments

Name Type Required Description

count

int

no

Number of instructions, omit for automatic.

pa

int

no

Physical address of block

va

int

no

Virtual address of block

Command translateFunc Arguments

Name Type Required Description

pa

int

no

Physical address of block

va

int

no

Virtual address of block