movdqu [rdi], xmm0
ret
-
ENDFUNC
INTFUNC(dmul4)
movdqu [rdi], xmm6
ret
-
ENDFUNC
INTFUNC(dmla4)
movdqu [rdi], xmm6
ret
-
ENDFUNC
INTFUNC(mul4zc)
movdqu [rdi], xmm6
ret
-
ENDFUNC
INTFUNC(mul4)
movdqu [rdi], xmm6
ret
-
ENDFUNC
INTFUNC(mla4zc)
movdqu [rdi], xmm6
ret
-
ENDFUNC
INTFUNC(mla4)
movdqu [rdi], xmm6
ret
-
ENDFUNC
INTFUNC(mmul4)
mulcore xmm4, 0, xmm8, xmm9, xmm12, xmm13, xmm14, xmm15
propout xmm7, lo, xmm12, xmm13
jmp 5f
-
ENDFUNC
INTFUNC(mmla4)
// And, with that, we're done.
movdqu [rdi], xmm6
ret
-
ENDFUNC
///--------------------------------------------------------------------------
endprologue
mov DV, rdi
-
#endif
#if ABI_WIN
mov rdi, DV
mov BVL, [SP + 224]
-
#endif
// Prepare for the first iteration.
#endif
#if ABI_WIN
-
rstrxmm xmm6, 0
rstrxmm xmm7, 16
rstrxmm xmm8, 32
stfree 160 + 8
popreg rdi
popreg rbx
-
#endif
ret
endprologue
mov DV, rdi
-
#endif
#if ABI_WIN
mov rdi, DV
mov N, [SP + 224]
mov MI, [SP + 232]
-
#endif
// Establish the expanded operands.
#endif
#if ABI_WIN
-
rstrxmm xmm6, 0
rstrxmm xmm7, 16
rstrxmm xmm8, 32
popreg r12
popreg rdi
popreg rbx
-
#endif
ret
// c rcx r9
#if ABI_SYSV
-
# define DVL rax
# define DVL4 rsi
# define MI r8
endprologue
mov DV, rdi
-
#endif
#if ABI_WIN
-
# define DVL rax
# define DVL4 rdx
# define MI r10
mov rdi, DV
mov MI, [SP + 224]
-
#endif
// Establish the expanded operands and the blocks-of-4 dv limit.
#endif
#if ABI_WIN
-
rstrxmm xmm6, 0
rstrxmm xmm7, 16
rstrxmm xmm8, 32
popreg r12
popreg rdi
popreg rbx
-
#endif
ret
propout [edi + 8], xmm6, nil
endprop [edi + 12], xmm6, xmm4
ret
-
ENDFUNC
INTFUNC(dmul4)
propout [edi + 12], xmm7, xmm4
ret
-
ENDFUNC
INTFUNC(dmla4)
propout [edi + 12], xmm7, xmm4
ret
-
ENDFUNC
INTFUNC(mul4zc)
propout [edi + 12], xmm7, xmm4
ret
-
ENDFUNC
INTFUNC(mul4)
propout [edi + 12], xmm7, xmm4
ret
-
ENDFUNC
INTFUNC(mla4zc)
propout [edi + 12], xmm7, xmm4
ret
-
ENDFUNC
INTFUNC(mla4)
propout [edi + 12], xmm7, xmm4
ret
-
ENDFUNC
INTFUNC(mmul4)
mulcore [eax + 0], ecx, xmm4, xmm5, xmm6, xmm7
propout [edi + 0], xmm4, xmm5
jmp 5f
-
ENDFUNC
INTFUNC(mmla4)
// And, with that, we're done.
stfree 48 + 12
ret
-
ENDFUNC
INTFUNC(mont4)
// And, with that, we're done.
ret
-
ENDFUNC
///--------------------------------------------------------------------------
pop ebx
pop BP
ret
-
ENDFUNC
FUNC(mpxmont_mul4_x86_avx)
popreg ebx
popreg BP
ret
-
ENDFUNC
FUNC(mpxmont_redc4_x86_avx)
popreg ebx
popreg BP
ret
-
ENDFUNC
///--------------------------------------------------------------------------