+++ /dev/null
-# [DRAFT] Twin Multiply and Add Doubleword
-
-VA-Form
-
-* madded RT,RA,RB,RC
-
-Pseudo-code:
-
- <!-- SVP64: RA,RB,RC,RT have EXTRA2, RS as below -->
- <!-- bit 8 of EXTRA is clear: RS.[s|v]=RT.[s|v]+VL -->
- <!-- bit 8 of EXTRA is set : RS.[s|v]=RC.[s|v] -->
- prod[0:127] <- (RA) * (RB)
- sum[0:127] <- EXTZ(RC) + prod
- RT <- sum[64:127]
- RS <- sum[0:63]
-
-Special Registers Altered:
-
- None
-
-# [DRAFT] Twin Divide Quad Unsigned
-
-VA-Form
-
-* divmod2du RT,RA,RB,RC
-
-Pseudo-code:
-
- <!-- SVP64: RA,RB,RC,RT have EXTRA2, RS as below -->
- <!-- bit 8 of EXTRA is clear: RS.[s|v]=RT.[s|v]+VL -->
- <!-- bit 8 of EXTRA is set : RS.[s|v]=RC.[s|v] -->
- if ((RA) <u (RB)) & ((RB) != [0]*XLEN) then
- dividend[0:(XLEN*2)-1] <- (RA) || (RC)
- divisor[0:(XLEN*2)-1] <- [0]*XLEN || (RB)
- result <- dividend / divisor
- modulo <- dividend % divisor
- RT <- result[XLEN:(XLEN*2)-1]
- RS <- modulo[XLEN:(XLEN*2)-1]
- overflow <- 0
- else
- overflow <- 1
- RT <- [1]*XLEN
- RS <- [0]*XLEN
-
-Special Registers Altered:
-
- None
to RC extended to SVP64 numbering, including whether RC is set Scalar or
Vector.
-For the Opcode map (XO Field)
-see Power ISA v3.1, Book III, Appendix D, Table 13 (sheet 7 of 8), p1357.
-Proposed is the addition of `madded` (**DRAFT, NOT APPROVED**) which is
-in `110010`.
-
-| 110000 | 110001 | 110010 | 110011 | 110100 | 110101 | 110110 | 110111 |
-| ------ | ------- | ------ | ------ | ------ | ------ | ------ | ------ |
-| maddhd | maddhdu | madded | maddld | rsvd | rsvd | rsvd | rsvd |
-
# divqdu RT,EA,RB
Divide Quad-Double Extended Unsigned is an XO-Form instruction
Pseudo-code:
dividend[0:(XLEN*2)-1] <- (RA) || (RS)
+
+# [DRAFT] EXT04 Proposed Map
+
+For the Opcode map (XO Field)
+see Power ISA v3.1, Book III, Appendix D, Table 13 (sheet 7 of 8), p1357.
+Proposed is the addition of `madded` (**DRAFT, NOT APPROVED**) in `110010`
+and `divrem2du` in `110100`
+
+|110000|110001 |110010 |110011|110100 |110101|110110|110111|
+|------|-------|----------|------|-------------|------|------|------|
+|maddhd|maddhdu|**madded**|maddld|**divrem2du**|rsvd |rsvd |rsvd |
+