(no commit message)
authorlkcl <lkcl@web>
Tue, 15 Mar 2022 21:28:08 +0000 (21:28 +0000)
committerIkiWiki <ikiwiki.info>
Tue, 15 Mar 2022 21:28:08 +0000 (21:28 +0000)
openpower/sv/bitmanip.mdwn

index 3774322ed9ef3756565e2ee06db30a683a39014e..f319d5147e6927c17f8839ac466482cd73f4cd85 100644 (file)
@@ -270,6 +270,20 @@ Immediate-variant is an overwrite form:
 | NN | RS | RB  | sh  | SH | itype | 1000 110 |Rc| bm*i |
 
 ```
+def MASK(x, y):
+     if x < y:
+         x = x+1
+         mask_a = ((1 << x) - 1) & ((1 << 64) - 1)
+         mask_b = ((1 << y) - 1) & ((1 << 64) - 1)
+     elif x == y:
+         return 1 << x
+     else:
+         x = x+1
+         mask_a = ((1 << x) - 1) & ((1 << 64) - 1)
+         mask_b = (~((1 << y) - 1)) & ((1 << 64) - 1)
+     return mask_a ^ mask_b
+
+
 uint_xlen_t bmset(RS, RB, sh)
 {
     int shamt = RB & (XLEN - 1);