Skip to content

Commit

Permalink
Merge pull request #101 from riscv-non-isa/formatting-fixes
Browse files Browse the repository at this point in the history
Formatting fixes
  • Loading branch information
IainCRobertson authored Apr 19, 2024
2 parents bc48ad5 + 190be9d commit 2d8e170
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 17 deletions.
5 changes: 3 additions & 2 deletions header.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
Gajinder Panesar <gajinder[email protected]>, Iain Robertson <iain[email protected]>
:description: Efficient Trace for RISC-V
:company: RISC-V.org
:revdate: March 5, 2024
:revnumber: 2.0.2
:revdate: April 19, 2024
:revnumber: 2.0.3
:url-riscv: http://riscv.org
:doctype: book
:pdf-theme: docs-resources/themes/riscv-pdf.yml
Expand Down Expand Up @@ -53,6 +53,7 @@ endif::[]
- Corrected typos where `lrid` was inadvertently refered to by an earlier name (`index`) in <<sec:data-loadstore>>. +
- Corrected reference decoder in <<Decoder>> to cover a corner-case related to trap returns.
|2.0.2 |First version in AsciiDoc format.
|2.0.3 |Formatting and typo fixes.
|===

[preface]
Expand Down
30 changes: 15 additions & 15 deletions payload.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -348,8 +348,8 @@ predicted return address at the top of the implicit_return return
address stack, or the last retired before an exception, interrupt,
privilege change or resync because it is necessary to report the current
address stack depth or nested call count.
|*irdepth*| _return_stack_size_p (return_stack_size_p > 0 ? 1 : 0)
call_counter_size_p_| If the value of *irreport* is different from
|*irdepth*| _return_stack_size_p + (return_stack_size_p > 0 ? 1 : 0)
+ call_counter_size_p_| If the value of *irreport* is different from
*updiscon*, this field indicates the number of entries on the return
address stack (i.e. the entry number of the return that failed) or
nested call count. If *irreport* is the same value as *updiscon*, all
Expand Down Expand Up @@ -395,7 +395,7 @@ uninferable discontinuity. It can therefore continue reconstructing the
execution path until it reaches the *_JALR_*, from where it can deduce
that *_opcode B_* at looplabel is the final retired instruction.
However, there are circumstances where this approach does not work. For
example, consider the case where there is an exception at looplabel 4.
example, consider the case where there is an exception at looplabel + 4.
In this case, the decoder cannot tell whether this occurred during the
1st or 2nd loop iterations, without additional information from the
encoder. This is the purpose of the *updiscon* field. In more detail:
Expand All @@ -408,7 +408,7 @@ carries on executing the 2nd pass of the loop. In this case *updiscon*
== *notify*. The next packet will be a format 1/2;
. Code executes through to the end of the 1st loop iteration and jumps
back to looplabel, but there is then an exception, privilege change or
resync in the second iteration at looplabel 4. In this case, the
resync in the second iteration at looplabel + 4. In this case, the
encoder reports looplabel using format 1/2 following the *_JALR_*, with
*updiscon* == !*notify*, and the next packet is a format 3;
. An exception occurs immediately after the 1st execution of looplabel.
Expand Down Expand Up @@ -440,8 +440,8 @@ continue until it encounters looplabel a 2nd time.
* If *notify* == !*address[MSB]*, this indicates case 4, 1st iteration.
The decoder has reached the correct instruction.

This example uses an exception at looplabel 4, but anything that could
cause a format 3 for looplabel 4 would result in the same behavior: a
This example uses an exception at looplabel + 4, but anything that could
cause a format 3 for looplabel + 4 would result in the same behavior: a
privilege change, or the expiry of the resync timer. It could also occur
if looplabel was the last traced instruction (because tracing was
disabled for some reason). See <<sec:qual-status>> for
Expand Down Expand Up @@ -542,8 +542,8 @@ predicted return address at the top of the implicit_return return
address stack, or the last retired before an exception, interrupt,
privilege change or resync because it is necessary to report the current
address stack depth or nested call count.
|*irdepth*| _return_stack_size_p (return_stack_size_p > 0 ? 1 : 0)
call_counter_size_p_| If the value of *irreport* is different from
|*irdepth*| _return_stack_size_p + (return_stack_size_p > 0 ? 1 : 0)
+ call_counter_size_p_| If the value of *irreport* is different from
*updiscon*, this field indicates the number of entries on the return
address stack (i.e. the entry number of the return that failed) or
nested call count. If *irreport* is the same value as *updiscon*, all
Expand Down Expand Up @@ -657,7 +657,7 @@ failed the prediction. ,01: (cannot occur for this format)
|*address*| _iaddress_width_p - iaddress_lsb_p_| Differential
instruction address.
|*notify*| 1| If the value of this bit is different from the MSB of
|*address*, it indicates that this packet is reporting an instruction
*address*, it indicates that this packet is reporting an instruction
that is not the target of an uninferable discontinuity because a
notification was requested via *trigger[2]* (see
<<sec:trigger>>).
Expand All @@ -673,8 +673,8 @@ predicted return address at the top of the implicit_return return
address stack, or the last retired before an exception, interrupt,
privilege change or resync because it is necessary to report the current
address stack depth or nested call count.
|*irdepth*| _return_stack_size_p (return_stack_size_p > 0 ? 1 : 0)
call_counter_size_p_| If the value of *irreport* is different from
|*irdepth*| _return_stack_size_p + (return_stack_size_p > 0 ? 1 : 0)
+ call_counter_size_p_| If the value of *irreport* is different from
*updiscon*, this field indicates the number of entries on the return
address stack (i.e. the entry number of the return that failed) or
nested call count. If *irreport* is the same value as *updiscon*, all
Expand Down Expand Up @@ -706,8 +706,8 @@ differs from the predicted return address at the top of the
implicit_return return address stack, or the last retired before an
exception, interrupt, privilege change or resync because it is necessary
to report the current address stack depth or nested call count.
|*irdepth*| _return_stack_size_p (return_stack_size_p > 0 ? 1 : 0)
call_counter_size_p_| If the value of *irreport* is different from
|*irdepth*| _return_stack_size_p + (return_stack_size_p > 0 ? 1 : 0)
+ call_counter_size_p_| If the value of *irreport* is different from
*branch_map[MSB]*, this field indicates the number of entries on the
return address stack (i.e. the entry number of the return that failed)
or nested call count. If *irreport* is the same value as
Expand All @@ -734,8 +734,8 @@ differs from the predicted return address at the top of the
implicit_return return address stack, or the last retired before an
exception, interrupt, privilege change or resync because it is necessary
to report the current address stack depth or nested call count.
|*irdepth*| _return_stack_size_p (return_stack_size_p > 0 ? 1 : 0)
call_counter_size_p_| If the value of *irreport* is different from
|*irdepth*| _return_stack_size_p + (return_stack_size_p > 0 ? 1 : 0)
+ call_counter_size_p_| If the value of *irreport* is different from
*branches[MSB]*, this field indicates the number of entries on the
return address stack (i.e. the entry number of the return that failed)
or nested call count. If *irreport* is the same value as
Expand Down

0 comments on commit 2d8e170

Please sign in to comment.