(no commit message)
authorlkcl <lkcl@web>
Wed, 22 Jun 2022 18:08:20 +0000 (19:08 +0100)
committerIkiWiki <ikiwiki.info>
Wed, 22 Jun 2022 18:08:20 +0000 (19:08 +0100)
openpower/sv/vector_ops/discussion.mdwn

index 2241840c28e29cd442947b58a4aa58c353cfa24e..f95d3c92172b5b19203997900484a8637ac2b75d 100644 (file)
@@ -10,22 +10,24 @@ needs some work though
 def bmask(mode, RA, RB=None, zero=False):
     if _RB = 0 then mask <- [1] * XLEN else mask = (RB)
     a1 <- (RA) & mask
-    if mode[1] then a1 <- ~ra
+    if mode[1] then a1 <- ¬ra
     mode2 <- mode[2:3]
     if mode2 = 0 then a2 <- -ra
     if mode2 = 1 then a2 <- ra-1
     if mode2 = 2 then a2 <- ra+1
-    if mode2 = 3 then a2 <- ~(ra+1)
+    if mode2 = 3 then a2 <- ¬(ra+1)
     a1 <- a1 & mask
     a2 <- a2 & mask
+    # select operator
     mode3 <- mode[3:4]
     if mode3 = 0 then result <- a1 | a2
     if mode3 = 1 then result <- a1 & a2
     if mode3 = 2 then result <- a1 ^ a2
     if mode3 = 3 then result <- UNDEFINED
     result <- result & mask
+    # optionally restore masked-out bits
     if L = 1 then
-        result <- result | (RA & ~mask)
+        result <- result | (RA & ¬mask)
     RT <- result
 
 SBF = 0b01010 # set before first