off-by-one in extsb XLEN=64
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 19 Apr 2023 10:18:51 +0000 (11:18 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 19 Apr 2023 10:18:53 +0000 (11:18 +0100)
openpower/sv/rfc/ls005.mdwn

index 648ef5750e7fcb6d16a8cd06b469039793e005b6..deac1ceac0be326c015cc4332cae3b7074b3c56c 100644 (file)
@@ -297,7 +297,7 @@ The RTL for `extsb` becomes:
     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
+    if XLEN = 64 then RT <- in[0] * 57 || in[1:7] # 8->64
 ```
 
 And `extsh` and `extsw` follow similar logic. Interestingly there is