Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions spec/ctxp-format.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ image::images/data-model.drawio.png[]

* Map of human-readable names for decimal-encoded source ids, in the form
** Source Id → Source name (byte to string)
* A source name must not be given for every source id.
* A source name need not be given for every source id.
* A source id should not appear twice in the map.

[[sec:trace_events]]
Expand All @@ -97,13 +97,13 @@ SYNC:: Core with `source_id` reached instruction at `target` address. Typically

INTERRUPT:: Core with `source_id` reached `target` address because of an interrupt. The last known instruction address that got executed, or at least tried to be executed (for example for invalid-opcode) before the interrupt is given by `origin`, and the next known address `target` is the instruction where the core continues. The optional `cycle_count` specifies when `target` got reached.

RFI:: Short for return-from-interrupt. CPU came back from an interrupt. The of last known executed instruction address is given at `origin`, and the first known instruction address where the CPU continues is `target`.
RFI:: Short for return-from-interrupt. CPU came back from an interrupt. The last known executed instruction address is given at `origin`, and the first known instruction address where the CPU continues is `target`.

BRANCH_TAKEN:: Core with `source_id` reached `target` address after taking a branch instruction. All types of branches are considered - may they be conditional, unconditional, direct or indirect, *except for calls & returns* (see `CALL`/`RETURN`). `origin` is the address of the branch instruction, while `target` is the destination of the branch instruction. The optional `cycle_count` specifies when `target` got reached.

BRANCH_NOTTAKEN:: Core with `source_id` reached `target` address after skipping a conditional branch (may it be direct or indirect). `origin` is the address of the branch instruction, and `target` the address of the reached instruction directly after the skipped branch. The optional `cycle_count` specifies when `target` got reached.

CALL:: Core with `source_id` reached `target` address by a call instruction. `origin` is the callers instruction address. The optional `cycle_count` specifies when `target` got reached.
CALL:: Core with `source_id` reached `target` address by a call instruction. `origin` is the caller's instruction address. The optional `cycle_count` specifies when `target` got reached.

RETURN:: Core with `source_id` reached `target` after executing a return instruction. `origin` represents the instruction address of the return. The optional `cycle_count` specifies when `target` got reached.

Expand Down Expand Up @@ -158,7 +158,7 @@ META:#0="CPU0",#1="CPU1",#2="CPU2",#3="CPU\\\"3\""
- Followed by the trace data, as list of events in each line:
+
[source]
#<SOURCE ID:dec>:<TYPE:string>:(<VALUE 1:hex>)?:(<VALUE 2:hex>)?: (@ <CYCLE COUNT:dec>)?
#<SOURCE ID:dec>:<TYPE:string>:(<VALUE 1:hex>)?:(<VALUE 2:hex>)? (@ <CYCLE COUNT:dec>)?

** `TYPE:string` must be a type defined in <<sec:trace_events>>.
** Presence of `VALUE 1` and `VALUE 2` depend on `TYPE`, defined in <<tab:type_payloads>>. Colons are always present.
Expand Down
Loading