(no commit message)
authorlkcl <lkcl@web>
Tue, 18 Apr 2023 22:03:05 +0000 (23:03 +0100)
committerIkiWiki <ikiwiki.info>
Tue, 18 Apr 2023 22:03:05 +0000 (23:03 +0100)
openpower/sv/rfc/ls005.mdwn

index 6611f89f8c261324b55778c2c0b0d52f0e8dc48f..37feb0412fadf1a708cf62e366816b3b7bc26331 100644 (file)
@@ -287,11 +287,11 @@ is a loss of functionality and opportunity:
 The RTL for `extsb` becomes:
 
 ```
-    in <- (RA)[XLEN-8:XLEN-1]
-    if XLEN = 8  then RT <- in[0]]  * 8               # 1->8
-    if XLEN = 16 then RT <- in[13]] * 15 || in[15]    # 2->16
-    if XLEN = 32 then RT <- in[28]] * 29 || in[29:31] # 4->32
-    if XLEN = 64 then RT <- in[55]] * 56 || in[57:63] # 8->64
+    in <- (RA)[XLEN-8:XLEN-1] # extract first byte
+    if XLEN = 8  then RT <- in[7]] * 8             # 1->8
+    if XLEN = 16 then RT <- in[6]] * 15 || in[7]   # 2->16
+    if XLEN = 32 then RT <- in[4]] * 29 || in[5:7] # 4->32
+    if XLEN = 64 then RT <- in[0]] * 56 || in[1:7] # 8->64
 ```
 
 And `extsh` and `extsw` follow similar logic. Interestingly there is