# 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 |
# ((r0 << 64) + r2) % r1, store in r2
divmod2du r4, r0, r1, r2
```
+
+----------
+
\newpage{}
# Double-Shift Left Doubleword
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
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{}
Formats: ... VA2, ...
```
+----------
+
# Appendices
Appendix E Power ISA sorted by opcode