(no commit message)
authorlkcl <lkcl@web>
Fri, 28 Oct 2022 12:26:48 +0000 (13:26 +0100)
committerIkiWiki <ikiwiki.info>
Fri, 28 Oct 2022 12:26:48 +0000 (13:26 +0100)
openpower/sv/biginteger.mdwn

index 8ff2396d9fc5d3d69d8937b56e029c5702d854b1..02495973d02465fed877ba13f2f24a5467b78ded 100644 (file)
@@ -53,22 +53,58 @@ operations.
 
 **DRAFT**
 
-`dsld` and `dsrd` are similar to v3.0 `sld`, and
-is Z23-Form in "overwrite" on RT.
+**dsld**
 
-|0.....5|6..10|11..15|16..20|21.22|23..30|31|
+|0.....5|6..10|11..15|16..20|21.25|26..30|31|
 |-------|-----|------|------|-----|------|--|
-| EXT04 | RT  |  RA  |  RB  | sm  |  XO  |Rc|
-
-Both instructions take two 64-bit sources, concatenate
-them together then extract 64 bits from it, the offset
-location determined by a third source.  So as to avoid
-costly 4-reg (VA-Form) and to allow Vectorised versions
-to use EXTRA3 a 2-bit mode `sm` gives four
-potential overwrite and zero-source options instead
-(a 4-reg VA-Form Vector variant would use EXTRA2,
-limiting the vector offset range and preventing its
-use in biginteger vector-shift operations).
+| EXT04 | RT  |  RA  |  RB  | RC  |  XO  |Rc|
+
+VA2-Form
+
+* dsld    RT,RA,RB,RC  (Rc=0)
+* dsld.   RT,RA,RB,RC  (Rc=1)
+
+Pseudo-code:
+
+    n <- (RB)[58:63]
+    v <- ROTL64((RA), n)
+    mask <- MASK(64, 63-n)
+    RT <- (v[0:63] & mask) | ((RC) & ¬mask)
+    RS <- v[0:63] & ¬mask
+    overflow = 0
+    if RS != [0]*64:
+        overflow = 1
+
+Special Registers Altered:
+
+    CR0                    (if Rc=1)
+
+**dsrd**
+
+|0.....5|6..10|11..15|16..20|21.25|26..30|31|
+|-------|-----|------|------|-----|------|--|
+| EXT04 | RT  |  RA  |  RB  | RC  |  XO  |Rc|
+
+VA2-Form
+
+* dsrd    RT,RA,RB,RC  (Rc=0)
+* dsrd.   RT,RA,RB,RC  (Rc=1)
+
+Pseudo-code:
+
+    n <- (RB)[58:63]
+    v <- ROTL64((RA), 64-n)
+    mask <- MASK(n, 63)
+    RT <- (v[0:63] & mask) | ((RC) & ¬mask)
+    RS <- v[0:63] & ¬mask
+    overflow = 0
+    if RS != [0]*64:
+        overflow = 1
+
+Special Registers Altered:
+
+    CR0                    (if Rc=1)
+
 
 # maddedu