invert mode-bits in bmask bm field
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 24 Jun 2022 14:51:02 +0000 (15:51 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 24 Jun 2022 14:51:02 +0000 (15:51 +0100)
openpower/isa/av.mdwn

index 862c26ece4da5c9c36a67102ccdc6df304bc5843..e0b2fb6b226db5b6f7e0659f9aafa71b62c72d33 100644 (file)
@@ -180,9 +180,10 @@ Pseudo-code:
 
     if _RB = 0 then mask <- [1] * XLEN
     else mask <- (RB)
-    a1 <- (RA) & mask
-    if bm[0] then a1 <- ¬ra
-    mode2 <- bm[1:2]
+    ra <- (RA) & mask
+    a1 <- ra
+    if bm[4] = 0 then a1 <- ¬ra
+    mode2 <- bm[2:3]
     if mode2 = 0 then a2 <- (¬ra)+1
     if mode2 = 1 then a2 <- ra-1
     if mode2 = 2 then a2 <- ra+1
@@ -190,7 +191,7 @@ Pseudo-code:
     a1 <- a1 & mask
     a2 <- a2 & mask
     # select operator
-    mode3 <- bm[3:4]
+    mode3 <- bm[0:1]
     if mode3 = 0 then result <- a1 | a2
     if mode3 = 1 then result <- a1 & a2
     if mode3 = 2 then result <- a1 ^ a2