You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- `double_pc_read` could be integrated into decoding, so that `AUIPC` could set `read_register1 = 0` and no extra MEMW access for `rv1` is needed at this point.
Copy file name to clipboardExpand all lines: spec/decode.typ
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ Given that `CPU` asserts that `EBREAK = 0` (see @cpu:c:ebreak_traps), using this
39
39
Note moreover that the `pc` is set to $7$.
40
40
This value is the _smallest odd number_ (i.e., not reachable during regular execution) that is more than _$4$_ (i.e., the max `pc`-increment) greater than _$1$_ (i.e., the `pc`-value used in the #link(<cpu-padding-decode-row>)[additional instruction] referred to by `CPU`-padding lines).
41
41
42
-
= Decoding
42
+
= Decoding<decode:decoding-overview>
43
43
For the purposes of explaining decoding, we decompress #decode's`packed_decode` variable into its constituent variables.
44
44
Note that the below table is _not_ used in practice: it is solely used for the purposes of this explanation.
45
45
@@ -64,12 +64,6 @@ For the purpose of brevity and readability, the table uses the following rules-o
64
64
65
65
Further clarification is provided in the notes following the table.
66
66
67
-
== C-type instructions
68
-
The `RV64C` extension for compressed instructions specifies that \~50% of all instructions can be represented using a 16-bit instruction (rather than 32-bits), saving \~25% in code size.
69
-
This execution of assembly code is _not_ agnostic to an instruction's compression state; after executing a compressed instruction, the `pc` should be incremented by $2$ rather than $4$.
70
-
To indicate an instruction is provided in compressed form, the `c_type` flag is introduced.
71
-
*This flag should be set to $1$ whenever the decoded instruction is provided in compressed form and $0$ otherwise.*
72
-
73
67
/// Add a reference to one or more notes following this table.
@@ -152,6 +146,12 @@ To indicate an instruction is provided in compressed form, the `c_type` flag is
152
146
153
147
#decoding_table(decoding)
154
148
149
+
== C-type instructions
150
+
The `RV64C` extension for compressed instructions specifies that \~50% of all instructions can be represented using a 16-bit instruction (rather than 32-bits), saving \~25% in code size.
151
+
This execution of assembly code is _not_ agnostic to an instruction's compression state; after executing a compressed instruction, the `pc` should be incremented by $2$ rather than $4$.
152
+
To indicate an instruction is provided in compressed form, the `c_type` flag is introduced.
153
+
*This flag should be set to $1$ whenever the decoded instruction is provided in compressed form and $0$ otherwise.*
154
+
155
155
// Construct a note that can be referenced through `lbl`
0 commit comments