11= Instruction Appendix
22:doctype: book
3- :wavedrom: /home/hbg/Projects /riscv-unified-db/node_modules/.bin/wavedrom-cli
3+ :wavedrom: /workspaces /riscv-unified-db/node_modules/.bin/wavedrom-cli
44// Now the document header is complete and the wavedrom attribute is active.
55
66
@@ -5206,18 +5206,18 @@ This instruction has different encodings in RV32 and RV64
52065206RV32::
52075207[wavedrom, ,svg,subs='attributes',width="100%"]
52085208....
5209- {"reg":[{"bits":2,"name": 0x2,"type":2},{"bits":5,"name": "shamt != 0","type":4},{"bits":5,"name": "rd ","type":4},{"bits":4,"name": 0x0,"type":2}]}
5209+ {"reg":[{"bits":2,"name": 0x2,"type":2},{"bits":5,"name": "shamt != 0","type":4},{"bits":5,"name": "xd ","type":4},{"bits":4,"name": 0x0,"type":2}]}
52105210....
52115211
52125212RV64::
52135213[wavedrom, ,svg,subs='attributes',width="100%"]
52145214....
5215- {"reg":[{"bits":2,"name": 0x2,"type":2},{"bits":5,"name": "shamt != 0[4:0]","type":4},{"bits":5,"name": "rd ","type":4},{"bits":1,"name": "shamt != 0[5]","type":4},{"bits":3,"name": 0x0,"type":2}]}
5215+ {"reg":[{"bits":2,"name": 0x2,"type":2},{"bits":5,"name": "shamt != 0[4:0]","type":4},{"bits":5,"name": "xd ","type":4},{"bits":1,"name": "shamt != 0[5]","type":4},{"bits":3,"name": 0x0,"type":2}]}
52165216....
52175217
52185218Description::
5219- Shift the value in rd left by shamt, and store the result back in rd .
5220- C.SLLI expands into `slli rd, rd , shamt`.
5219+ Shift the value in xd left by shamt, and store the result back in xd .
5220+ C.SLLI expands into `slli xd, xd , shamt`.
52215221
52225222
52235223Decode Variables::
@@ -5227,7 +5227,7 @@ Decode Variables::
52275227|===
52285228|Variable Name |Location
52295229|shamt |$encoding[6:2]
5230- |rd |$encoding[11:7]
5230+ |xd |$encoding[11:7]
52315231|===
52325232
52335233*RV64:*
@@ -5236,7 +5236,7 @@ Decode Variables::
52365236|===
52375237|Variable Name |Location
52385238|shamt |{$encoding[12], $encoding[6:2]}
5239- |rd |$encoding[11:7]
5239+ |xd |$encoding[11:7]
52405240|===
52415241
52425242Included in::
@@ -5267,19 +5267,19 @@ This instruction has different encodings in RV32 and RV64
52675267RV32::
52685268[wavedrom, ,svg,subs='attributes',width="100%"]
52695269....
5270- {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0","type":4},{"bits":3,"name": "rd ","type":4},{"bits":6,"name": 0x21,"type":2}]}
5270+ {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0","type":4},{"bits":3,"name": "xd ","type":4},{"bits":6,"name": 0x21,"type":2}]}
52715271....
52725272
52735273RV64::
52745274[wavedrom, ,svg,subs='attributes',width="100%"]
52755275....
5276- {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0[4:0]","type":4},{"bits":3,"name": "rd ","type":4},{"bits":2,"name": 0x1,"type":2},{"bits":1,"name": "shamt != 0[5]","type":4},{"bits":3,"name": 0x4,"type":2}]}
5276+ {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0[4:0]","type":4},{"bits":3,"name": "xd ","type":4},{"bits":2,"name": 0x1,"type":2},{"bits":1,"name": "shamt != 0[5]","type":4},{"bits":3,"name": 0x4,"type":2}]}
52775277....
52785278
52795279Description::
5280- Arithmetic shift (the original sign bit is copied into the vacated upper bits) the value in rd right by shamt, and store the result in rd .
5281- The rd register index should be used as rd +8 (registers x8-x15).
5282- C.SRAI expands into `srai rd, rd , shamt`.
5280+ Arithmetic shift (the original sign bit is copied into the vacated upper bits) the value in xd right by shamt, and store the result in xd .
5281+ The xd register index should be used as xd +8 (registers x8-x15).
5282+ C.SRAI expands into `srai xd, xd , shamt`.
52835283
52845284
52855285Decode Variables::
@@ -5289,7 +5289,7 @@ Decode Variables::
52895289|===
52905290|Variable Name |Location
52915291|shamt |$encoding[6:2]
5292- |rd |$encoding[9:7]
5292+ |xd |$encoding[9:7]
52935293|===
52945294
52955295*RV64:*
@@ -5298,7 +5298,7 @@ Decode Variables::
52985298|===
52995299|Variable Name |Location
53005300|shamt |{$encoding[12], $encoding[6:2]}
5301- |rd |$encoding[9:7]
5301+ |xd |$encoding[9:7]
53025302|===
53035303
53045304Included in::
@@ -5329,19 +5329,19 @@ This instruction has different encodings in RV32 and RV64
53295329RV32::
53305330[wavedrom, ,svg,subs='attributes',width="100%"]
53315331....
5332- {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0","type":4},{"bits":3,"name": "rd ","type":4},{"bits":6,"name": 0x20,"type":2}]}
5332+ {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0","type":4},{"bits":3,"name": "xd ","type":4},{"bits":6,"name": 0x20,"type":2}]}
53335333....
53345334
53355335RV64::
53365336[wavedrom, ,svg,subs='attributes',width="100%"]
53375337....
5338- {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0[4:0]","type":4},{"bits":3,"name": "rd ","type":4},{"bits":2,"name": 0x0,"type":2},{"bits":1,"name": "shamt != 0[5]","type":4},{"bits":3,"name": 0x4,"type":2}]}
5338+ {"reg":[{"bits":2,"name": 0x1,"type":2},{"bits":5,"name": "shamt != 0[4:0]","type":4},{"bits":3,"name": "xd ","type":4},{"bits":2,"name": 0x0,"type":2},{"bits":1,"name": "shamt != 0[5]","type":4},{"bits":3,"name": 0x4,"type":2}]}
53395339....
53405340
53415341Description::
5342- Shift the value in rd right by shamt, and store the result back in rd .
5343- The rd register index should be used as rd +8 (registers x8-x15).
5344- C.SRLI expands into `srli rd, rd , shamt`.
5342+ Shift the value in xd right by shamt, and store the result back in xd .
5343+ The xd register index should be used as xd +8 (registers x8-x15).
5344+ C.SRLI expands into `srli xd, xd , shamt`.
53455345
53465346
53475347Decode Variables::
@@ -5351,7 +5351,7 @@ Decode Variables::
53515351|===
53525352|Variable Name |Location
53535353|shamt |$encoding[6:2]
5354- |rd |$encoding[9:7]
5354+ |xd |$encoding[9:7]
53555355|===
53565356
53575357*RV64:*
@@ -5360,7 +5360,7 @@ Decode Variables::
53605360|===
53615361|Variable Name |Location
53625362|shamt |{$encoding[12], $encoding[6:2]}
5363- |rd |$encoding[9:7]
5363+ |xd |$encoding[9:7]
53645364|===
53655365
53665366Included in::
@@ -5860,7 +5860,7 @@ The table below summarizes the options.
586058605+^.>h! `cbe.inval` Operation
58615861.^h! M-mode .^h! S-mode .^h! U-mode .^h! VS-mode .^h! VU-mode
58625862
5863- ! 00 ! - ! - ! Invalidate ! `Illegal Instruction` ! `Illegal Instruction` ! `Virtual Instruction` ! `Virtual Instruction`
5863+ ! 00 ! - ! - ! Invalidate ! `Illegal Instruction` ! `Illegal Instruction` ! `Illegal Instruction` ! `Illegal Instruction`
58645864! 01 ! 00 ! 00 ! Invalidate ! Flush ! `Illegal Instruction` ! `Virtual Instruction` ! `Virtual Instruction`
58655865! 01 ! 00 ! 01 ! Invalidate ! Flush ! `Illegal Instruction` ! Flush ! `Virtual Instruction`
58665866! 01 ! 00 ! 11 ! Invalidate ! Flush ! `Illegal Instruction` ! Flush ! `Virtual Instruction`
0 commit comments