add crternlogi to ls007
authorJacob Lifshay <programmerjake@gmail.com>
Tue, 14 Mar 2023 00:01:28 +0000 (17:01 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Tue, 14 Mar 2023 00:01:28 +0000 (17:01 -0700)
openpower/sv/rfc/ls007.mdwn

index 757d868e96e50b4c76d48c1e849e6defc246f091..ae2d6df9dafe0e5bacd39ee5bd415ac8282ebb96 100644 (file)
@@ -181,6 +181,39 @@ CR0                    (if Rc=1)
 
 \newpage{}
 
+# Condition Register Ternary Logic Immediate CRB-form
+
+Add this section to Book I 2.5.1
+
+* `crternlogi BT, BA, BB, BC, TLI, msk`
+
+| 0.5| 6-8 | 9-11 | 12-14 | 15-17 | 18-20 | 21-28 | 29-30 | 31  | Form     |
+|----|-----|------|-------|-------|-------|-------|-------|-----|----------|
+| PO | BF  | BFA  | BFB   | BFC   | msk   |  TLI  |  XO   | msk | CRB-Form |
+
+Pseudocode:
+
+```
+a <- CR[4*BFA+32:4*BFA+35]
+b <- CR[4*BFB+32:4*BFB+35]
+c <- CR[4*BFC+32:4*BFC+35]
+do i = 0 to 3
+    idx <- a[i] || b[i] || c[i]  # compute index from current bits
+    result <- TLI[7 - idx]  # subtract from 7 to index in LSB0 order
+    if msk[i] = 1 then
+        CR[4*BF+32+i] <- result
+```
+
+Special registers altered:
+
+```
+CR field BF
+```
+
+----------
+
+\newpage{}
+
 # Dynamic Binary Logic VA-form
 
 Add this section to Book I 3.3.13