(no commit message)
authorlkcl <lkcl@web>
Sun, 17 Apr 2022 22:04:04 +0000 (23:04 +0100)
committerIkiWiki <ikiwiki.info>
Sun, 17 Apr 2022 22:04:04 +0000 (23:04 +0100)
openpower/isa/svfixedarith.mdwn

index a08c54356ca1bbedea75173a3257e5ee77f210a4..871852c2d31314d315b14e2fbb0bd9b92425fa79 100644 (file)
@@ -29,3 +29,29 @@ Pseudo-code:
 Special Registers Altered:
 
     None
+
+# Twin Multiply and Subtract Doubleword
+
+* msubx RT, RA, RB, RC
+
+Pseudocode:
+
+    <!-- (RS=RT+VL for SVP64, RS=RT+1 for scalar) />
+    prod[0:127] = (RA) * (RB)
+    sub[0:127] = EXTZ(RC) - prod
+    RT <- sub[64:127]
+    RS <- sub[0:63]
+
+Special Registers Altered:
+
+    None
+
+
+weirdaddx RT, RA, RB (RS=RT+VL for SVP64, RS=RT+1 for scalar)
+
+    cat[0:127] = (RB) || (RS)
+    sum[0:127] = cat + EXTZ(RA) + [1]*128
+    rhi[0:63] = sum[0:63]
+    if (RA) <= 1 then rhi = rhi + ([0]*63 || 1)
+    RA = rhi
+    RT = sum[64:127]