aboutsummaryrefslogtreecommitdiff
path: root/dppd.s
diff options
context:
space:
mode:
Diffstat (limited to 'dppd.s')
-rw-r--r--dppd.s17
1 files changed, 17 insertions, 0 deletions
diff --git a/dppd.s b/dppd.s
index 907a437..7239d9f 100644
--- a/dppd.s
+++ b/dppd.s
@@ -12,6 +12,13 @@ TEXT dppd(SB), 1, $0
DPPD(rX1, rX0) /* DPPD $0x31, X1, X0 */
RET
+TEXT dppda(SB), 1, $0
+ MOVQ SP, AX
+ VMOVUPD_128mr(8, rAX, rX0) /* VMOVUPD a+0(FP), X0 */
+ VMOVUPD_128mr(32, rAX, rX1) /* VMOVUPD b+24(FP), X1 */
+ VDPPD(rX1, rX0, rX0) /* VDPPD $0x31, X1, X0, X0 */
+ RET
+
TEXT dppd3(SB), 1, $0
MOVQ SP, AX
MOVLPD(8, rAX, rX0) /* MOVLPD a+0(FP), X0 */
@@ -25,6 +32,16 @@ TEXT dppd3(SB), 1, $0
DPPD(rX1, rX0) /* DPPD $0x31, X1, X0 */
RET
+TEXT dppd3a(SB), 1, $0
+ MOVQ SP, AX
+ VMOVUPD_128mr(8, rAX, rX0) /* VMOVUPD a+0(FP), X0 */
+ VMOVUPD_128mr(40, rAX, rX1) /* VMOVUPD b+32(FP), X1 */
+ VDPPD(rX1, rX0, rX0) /* VDPPD $0x31, X1, X0, X0 */
+ MOVSD a+16(FP), X1
+ MOVSD b+48(FP), X2
+ VFMADD231SD(rX1, rX2, rX0)
+ RET
+
TEXT Pt2b(SB), 1, $0
MOVQ BP, DI
MOVSD x+8(FP), X0