(no commit message)
authorlkcl <lkcl@web>
Tue, 29 Mar 2022 06:02:13 +0000 (07:02 +0100)
committerIkiWiki <ikiwiki.info>
Tue, 29 Mar 2022 06:02:13 +0000 (07:02 +0100)
openpower/sv/cr_int_predication.mdwn

index 8baa3a2ef7f613397246ddf45954df74c6d86f00..14ce3e2083d825d8dd296a18b2b6410a34847c10 100644 (file)
@@ -68,11 +68,11 @@ Instruction format:
 
 |0-5|6-10 |11|12-15|16-18|19-20|21-25  |26-30  |31|name      |
 |---|---- |--|-----|-----|-----|-----  |-----  |--|----      |
-|19 |RT   |  |mask |B  |     |XO[0:4]|XO[5:9]|/ |          |
-|19 |RT   |M |mask |B  | 0 0 |XO[0:4]|0 mode |Rc|crrweird  |
-|19 |RA   |/ |mask |BT   | 0 1 |XO[0:4]|0 mode |/ |mtcrweird |
-|19 |BT //|M |mask |BB   | 1 0 |XO[0:4]|0 mode |/ |crweird   |
-|19 |BFT  |/ |mask |BB   | 1 1 |XO[0:4]|0 mode |/ |crweirder |
+|19 |RT   |  |mask |BFA  |     |XO[0:4]|XO[5:9]|/ |          |
+|19 |RT   |M |mask |BFA  | 0 0 |XO[0:4]|0 mode |Rc|crrweird  |
+|19 |RA   |/ |mask |BF   | 0 1 |XO[0:4]|0 mode |/ |mtcrweird |
+|19 |BFT//|M |mask |BFA  | 1 0 |XO[0:4]|0 mode |/ |crweird   |
+|19 |BF   |/ |mask |BFA  | 1 1 |XO[0:4]|0 mode |/ |crweirder |
 
 **crrweird**
 
@@ -80,9 +80,9 @@ mode is encoded in XO and is 4 bits
 
 bit 19=0, bit 20=0
 
-    crrweird: RT, BB, mask.mode
+    crrweird: RT, BFA, mask.mode
 
-    creg = CR{BB}
+    creg = CR{BFA}
     n0 = mask[0] & (mode[0] == creg[0])
     n1 = mask[1] & (mode[1] == creg[1])
     n2 = mask[2] & (mode[2] == creg[2])
@@ -99,7 +99,7 @@ such can use Rc=1 and RC1 Data-dependent Mode capability
 
 bit 19=0, bit 20=1
 
-    mtcrweird: BT, RA, mask.mode
+    mtcrweird: BF, RA, mask.mode
 
     reg = (RA|0)
     lsb = reg[63] # MSB0 numbering
@@ -107,7 +107,7 @@ bit 19=0, bit 20=1
     n1 = mask[1] & (mode[1] == lsb)
     n2 = mask[2] & (mode[2] == lsb)
     n3 = mask[3] & (mode[3] == lsb)
-    CR{BT} = n0 || n1 || n2 || n3
+    CR{BF} = n0 || n1 || n2 || n3
 
 When used with SVP64 Prefixing this is a [[openpower/sv/cr_ops]] SVP64 type operation that has
 3-bit Data-dependent and 3-bit Predicate-result capability
@@ -117,14 +117,14 @@ When used with SVP64 Prefixing this is a [[openpower/sv/cr_ops]] SVP64 type oper
 
 bit 19=1, bit 20=0
 
-    crweird: BT, BB, mask.mode
+    crweird: BF, BFA, mask.mode
 
-    creg = CR{BB}
+    creg = CR{BFA}
     n0 = mask[0] & (mode[0] == creg[0])
     n1 = mask[1] & (mode[1] == creg[1])
     n2 = mask[2] & (mode[2] == creg[2])
     n3 = mask[3] & (mode[3] == creg[3])
-    CR{BT} = n0 || n1 || n2 || n3
+    CR{BF} = n0 || n1 || n2 || n3
 
 When used with SVP64 Prefixing this is a [[openpower/sv/cr_ops]] SVP64 type operation that has
 3-bit Data-dependent and 3-bit Predicate-result capability
@@ -134,15 +134,15 @@ When used with SVP64 Prefixing this is a [[openpower/sv/cr_ops]] SVP64 type oper
 
 bit 19=1, bit 20=1
 
-    crweirder: BFT, BB, mask.mode
+    crweirder: BT, BFA, mask.mode
 
-    creg = CR{BB}
+    creg = CR{BFA}
     n0 = mask[0] & (mode[0] == creg[0])
     n1 = mask[1] & (mode[1] == creg[1])
     n2 = mask[2] & (mode[2] == creg[2])
     n3 = mask[3] & (mode[3] == creg[3])
-    BF = BFT[2:4] # select CR
-    bit = BFT[0:1] # select bit of CR
+    BF = BT[2:4] # select CR
+    bit = BT[0:1] # select bit of CR
     result = n0|n1|n2|n3 if M else n0&n1&n2&n3
     CR{BF}[bit] = result
 
@@ -152,9 +152,9 @@ When used with SVP64 Prefixing this is a [[openpower/sv/cr_ops]] SVP64 type oper
 
 **Example Pseudo-ops:**
 
-    mtcri BB, mode    mtcrweird r0, BB, 0b1111.~mode
-    mtcrset BB, mask  mtcrweird r0, BB, mask.0b0000
-    mtcrclr BB, mask  mtcrweird r0, BB, mask.0b1111
+    mtcri BFA, mode    mtcrweird r0, BFA, 0b1111.~mode
+    mtcrset BFA, mask  mtcrweird r0, BFA, mask.0b0000
+    mtcrclr BFA, mask  mtcrweird r0, BFA, mask.0b1111
 
 # Vectorised versions