bug 1034: update spec page on bin/tern lut2/lut3
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 27 Jan 2024 12:50:05 +0000 (12:50 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 27 Jan 2024 12:50:05 +0000 (12:50 +0000)
openpower/sv/tern_bin.mdwn

index 124e1765dc004fe8ad2f9c626ceb45f1c7d7111f..549ebe1eba962c9f2d1d66921e239191dac2bf9c 100644 (file)
@@ -13,9 +13,9 @@ Add this section to Book I 3.3.13
 
 TLI-form
 
-| 0-5 | 6-10 | 11-15 | 16-20 | 21-28 | 29-30 | 31 | Form     |
-|-----|------|-------|-------|-------|-------|----|----------|
-| PO  | RT   |  RA   |  RB   | TLI   | XO    | Rc | TLI-Form |
+TLI 0.5 | 6.10 | 11.15 | 16.20 | 21.28 | 29.30 | 31 | Form     |
+|-------|------|-------|-------|-------|-------|----|----------|
+| PO    | RT   |  RA   |  RB   | TLI   | XO    | Rc | TLI-Form |
 
 * `ternlogi RT, RA, RB, TLI` (`Rc=0`)
 * `ternlogi. RT, RA, RB, TLI` (`Rc=1`)
@@ -65,7 +65,7 @@ Special registers altered:
 
 \newpage{}
 
-## Condition Register Ternary Logic Immediate
+## Condition Register Field Ternary Logic Immediate
 
 Add this section to Book I 2.5.1
 
@@ -75,7 +75,7 @@ CRB-form
 |----|----|----|-----|-----|-----|-----|-----|---|----------|
 | PO | BF | msk|BFA  | msk | BFB | TLI | XO  |TLI| CRB-Form |
 
-* `crternlogi BF, BFA, BFB, TLI, msk`
+* `crfternlogi BF, BFA, BFB, TLI, msk`
 
 Pseudocode:
 
@@ -134,6 +134,35 @@ Special registers altered:
 
 \newpage{}
 
+## Condition Register Ternary Logic Immediate
+
+Add this section to Book I 2.5.1
+
+TLI-form
+
+TLI 0.5 | 6.10 | 11.15 | 16.20 | 21.28 | 29.31 | Form     |
+|-------|------|-------|-------|-------|-------|----------|
+| PO    | BT   |  BA   |  BB   | TLI   | XO    | TLI-Form |
+
+* `crternlogi BT, BA, BB, TLI`
+
+Pseudocode:
+
+```
+    idx <- CR[BT+32] || CR[BA+32] || CR[BB+32]
+    CR[4*BT+32] <- TLI[7-idx]
+```
+
+Special registers altered:
+
+```
+    CR[BT+32]
+```
+
+----------
+
+\newpage{}
+
 ## GPR Dynamic Binary Logic
 
 Add this section to Book I 3.3.13
@@ -208,7 +237,7 @@ CRB-form
 |----|----|----|-----|-----|-----|-----|-----|---|----------|
 | PO | BF | msk|BFA  | msk | BFB | //  | XO  |// | CRB-Form |
 
-* `crbinlog BF, BFA, BFB, msk`
+* `crfbinlog BF, BFA, BFB, msk`
 
 Pseudocode:
 
@@ -260,6 +289,37 @@ A simple copy instruction may be used to achieve the effect of
 3-in 1-out. The copy instruction should come immediately before
 `crternlogi` so that hardware may optionally Macro-Op Fuse them*
 
+## Condition Register Dynamic Binary Logic
+
+Add this section to Book I 2.5.1
+
+X-form
+
+| 0.5|6.10|11.15|16.20|21.30| 31| Form     |
+|----|----|-----|-----|-----|---|----------|
+| PO | BT | BA  | BB  | XO  | / | CRB-Form |
+
+* `crbinlog BF, BFA, BFB, msk`
+
+Pseudocode:
+
+```
+    lut <- CR[4*BFB+32:4*BFB+35]
+    idx <- CR[BT+32] || CR[BA+32]
+    CR[BT+32] <- lut[3-idx]
+```
+
+Special registers altered:
+
+```
+    CR[BT+32]
+```
+
+*Programmer's Note: just as with binlut and ternlogi, a pair
+ of crbinlog instructions followed by a merging crternlogi may
+ be deployed to synthesise dynamic ternary (LUT3) CR Field
+ manipulation*
+
 [[!tag standards]]
 
 ----------