(no commit message)
authorlkcl <lkcl@web>
Wed, 9 Mar 2022 09:13:27 +0000 (09:13 +0000)
committerIkiWiki <ikiwiki.info>
Wed, 9 Mar 2022 09:13:27 +0000 (09:13 +0000)
openpower/sv/bitmanip.mdwn

index b8eb5922acfe5ee25b4873f6bb5224c8b94edb22..95da908e79b8afbeb7ee04cd30bf7123f4bf0e01 100644 (file)
@@ -649,23 +649,18 @@ def FullDivision(self, f, v):
 
         fDegree, vDegree = gf_degree(f), gf_degree(v)
         res, rem = 0, f
-        i = fDegree
-        mask = 1 << i
-        while (i >= vDegree):
-            if (mask & rem): # check MSB
+        for i in reversed(range(vDegree, fDegree+1):
+            if ((rem >> i) & 1): # check bit
                 res ^= (1 << (i - vDegree))
                 rem ^= ( v << (i - vDegree)))
-            i -= 1
-            mask >>= 1
         return (res, rem)
 ```
+
 | 0.5|6.10|11.15|16.20| 21 | 22.23 | 24....30 |31| name |
 | -- | -- | --- | --- | -- | ----- | -------- |--| ---- |
 | NN | RT | RA  | RB  | 1  |  00   | 0001 110 |Rc| cldiv |
 | NN | RT | RA  | RB  | 1  |  01   | 0001 110 |Rc| clmod |
 
-GFMOD is a pseudo-op where RA=0
-
 ## carryless mul
 
 based on RV bitmanip