cleanup ls003 - clarify Rc=1 setting overflow,
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 3 Mar 2023 10:16:57 +0000 (10:16 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 3 Mar 2023 10:18:03 +0000 (10:18 +0000)
remove comment on divmod2du, add pagebreaks

openpower/sv/rfc/ls003.mdwn

index 2e231eafaa2e0d5a733876df4f2dc4d0c6e4fcf2..0ab082c0f6b53b7faf7d4125a613bcfd91d0a992 100644 (file)
@@ -247,9 +247,6 @@ maddedus r22,r6,r0,r3
 
 # Divide/Modulo Quad-Double Unsigned
 
-**Should name be Divide/Module Double Extended Unsigned?**
-**Check the pseudo-code comments**
-
 `divmod2du RT,RA,RB,RC`
 
 |  0-5  | 6-10 | 11-15 | 16-20 | 21-25 | 26-31 | Form    |
@@ -321,6 +318,9 @@ Examples:
 # ((r0 << 64) + r2) % r1, store in r2
 divmod2du r4, r0, r1, r2
 ```
+
+----------
+
 \newpage{}
 
 # Double-Shift Left Doubleword
@@ -349,20 +349,22 @@ Special Registers Altered:
 The contents of register RA are shifted left the number
 of bits specified by (RB) 58:63. The same number of
 shifted bits are taken from the **right** (LSB) end of register
-RC and placed into the *rightmost* (LSB) end of the result, RT.
+RC and placed into the **rightmost** (LSB) end of the result, RT.
 Additionally, the MSB (leftmost) bits of register RA that would normally
 be discarded by a 64-bit left shift are placed into the
 LSBs of RS.
 
-When Rc=1, and the value in RS is nonzero,
-the overflow flag is raised in CR0. All other bits of CR0
-are set to zero. XER.OV and XER.SO remain unchanged.
+When Rc=1, the overflow flag in CR0 is set if RS is nonzero,
+or cleared if it is zero; all other bits of CR0 are set from RT as normal. 
+XER.OV and XER.SO remain unchanged.
 
 *Programmer's note:
 similar to maddedu and divmod2du, dsld can be chained (using RC),
-effectively using RC as a 64-bit carry-in and carry-out.*
+effectively using RC as a 64-bit carry-in and carry-out. Arbitrary
+length Scalar-Vector shift may be performed without the additional
+masking instructions normally needed.*
 
-\newpage{}
+----------
 
 # Double-Shift Right Doubleword
 
@@ -389,19 +391,23 @@ Special Registers Altered:
 
 The contents of register RA are shifted right the number
 of bits specified by (RB) 58:63. The same number of
-shifted bits are taken from the **left** (LSB) end of register RC
-and placed into the MSBs of the result, RT.
+shifted bits are taken from the **left** (MSB) end of register RC
+and placed into the **leftmost** (MSB) end of the result, RT.
 Additionally, the LSB (rightmost) bits of register RA that would normally
 be discarded by a 64-bit right shift are placed into the
 MSBs of RS.
 
-When Rc=1, and the value in RS is nonzero,
-the overflow flag is raised in CR0. All other bits of CR0
-are set to zero. XER.OV and XER.SO remain unchanged.
+When Rc=1, the overflow flag in CR0 is set if RS is nonzero,
+or cleared if it is zero; all other bits of CR0 are set from RT as normal. 
+XER.OV and XER.SO remain unchanged.
 
 *Programmer's note:
 similar to maddedu and divmod2du, dsrd can be chained (using RC),
-effectively using RC as a 64-bit carry-in and carry-out.*
+effectively using RC as a 64-bit carry-in and carry-out. Arbitrary
+length Scalar-Vector shift may be performed without the additional
+masking instructions normally needed.*
+
+----------
 
 \newpage{}
 
@@ -449,6 +455,8 @@ XO (26:30)
     Formats: ... VA2, ...
 ```
 
+----------
+
 # Appendices
 
     Appendix E Power ISA sorted by opcode