fixedshift: switch srawX to XLEN
authorDmitry Selyutin <dmitry.selyutin@3mdeb.com>
Tue, 31 Aug 2021 20:26:15 +0000 (20:26 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 1 Sep 2021 19:19:59 +0000 (20:19 +0100)
openpower/isa/fixedshift.mdwn

index 456962359ea71ed8090f386ac2c7c2d267fb39a5..bcf9296a2143bde55ecab7ab3501df23405bd940 100644 (file)
@@ -253,14 +253,14 @@ X-Form
 
 Pseudo-code:
 
-    n <- (RB)[59:63]
-    r <- ROTL32((RS)[32:63], 64-n)
-    if (RB)[58] = 0 then
-        m <- MASK32(n, 31)
-    else m <- [0]*64
-    s <- (RS)[32]
-    RA <- r&m | ([s]*64)& ¬m
-    carry <-  s & ((r&¬m)[32:63] != 0)
+    n <- (RB)[XLEN-5:XLEN-1]
+    r <- ROTL32((RS)[XLEN/2:XLEN-1], XLEN-n)
+    if (RB)[XLEN-6] = 0 then
+        m <- MASK32(n, ((XLEN/2)-1))
+    else m <- [0]*XLEN
+    s <- (RS)[XLEN/2]
+    RA <- r&m | ([s]*XLEN)& ¬m
+    carry <-  s & ((r&¬m)[XLEN/2:XLEN-1] != 0)
     CA    <-  carry
     CA32  <-  carry