mirror of
https://github.com/xmrig/xmrig.git
synced 2025-01-18 16:55:55 +00:00
Removed unnecessary ASM files duplicates for MSYS2.
This commit is contained in:
parent
f2574c2a41
commit
18a9803e5e
6 changed files with 1 additions and 3156 deletions
|
@ -23,7 +23,7 @@ if (WITH_ASM AND NOT XMRIG_ARM AND CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
if (WIN32 AND CMAKE_C_COMPILER_ID MATCHES GNU)
|
if (WIN32 AND CMAKE_C_COMPILER_ID MATCHES GNU)
|
||||||
set(XMRIG_ASM_FILES
|
set(XMRIG_ASM_FILES
|
||||||
"src/crypto/asm/win64/cn_main_loop.S"
|
"src/crypto/asm/win64/cn_main_loop.S"
|
||||||
"src/crypto/asm/win64/CryptonightR_template.S"
|
"src/crypto/asm/CryptonightR_template.S"
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(XMRIG_ASM_FILES
|
set(XMRIG_ASM_FILES
|
||||||
|
|
|
@ -1,279 +0,0 @@
|
||||||
PUBLIC FN_PREFIX(CryptonightR_soft_aes_template_part1)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_soft_aes_template_mainloop)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_soft_aes_template_part2)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_soft_aes_template_part3)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_soft_aes_template_end)
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightR_soft_aes_template_part1):
|
|
||||||
mov QWORD PTR [rsp+8], rcx
|
|
||||||
push rbx
|
|
||||||
push rbp
|
|
||||||
push rsi
|
|
||||||
push rdi
|
|
||||||
push r12
|
|
||||||
push r13
|
|
||||||
push r14
|
|
||||||
push r15
|
|
||||||
sub rsp, 232
|
|
||||||
|
|
||||||
mov eax, [rcx+96]
|
|
||||||
mov ebx, [rcx+100]
|
|
||||||
mov esi, [rcx+104]
|
|
||||||
mov edx, [rcx+108]
|
|
||||||
mov [rsp+144], eax
|
|
||||||
mov [rsp+148], ebx
|
|
||||||
mov [rsp+152], esi
|
|
||||||
mov [rsp+156], edx
|
|
||||||
|
|
||||||
mov rax, QWORD PTR [rcx+48]
|
|
||||||
mov r10, rcx
|
|
||||||
xor rax, QWORD PTR [rcx+16]
|
|
||||||
mov r8, QWORD PTR [rcx+32]
|
|
||||||
xor r8, QWORD PTR [rcx]
|
|
||||||
mov r9, QWORD PTR [rcx+40]
|
|
||||||
xor r9, QWORD PTR [rcx+8]
|
|
||||||
movd xmm4, rax
|
|
||||||
mov rdx, QWORD PTR [rcx+56]
|
|
||||||
xor rdx, QWORD PTR [rcx+24]
|
|
||||||
mov r11, QWORD PTR [rcx+224]
|
|
||||||
mov rcx, QWORD PTR [rcx+88]
|
|
||||||
xor rcx, QWORD PTR [r10+72]
|
|
||||||
mov rax, QWORD PTR [r10+80]
|
|
||||||
movd xmm0, rdx
|
|
||||||
xor rax, QWORD PTR [r10+64]
|
|
||||||
|
|
||||||
movaps XMMWORD PTR [rsp+16], xmm6
|
|
||||||
movaps XMMWORD PTR [rsp+32], xmm7
|
|
||||||
movaps XMMWORD PTR [rsp+48], xmm8
|
|
||||||
movaps XMMWORD PTR [rsp+64], xmm9
|
|
||||||
movaps XMMWORD PTR [rsp+80], xmm10
|
|
||||||
movaps XMMWORD PTR [rsp+96], xmm11
|
|
||||||
movaps XMMWORD PTR [rsp+112], xmm12
|
|
||||||
movaps XMMWORD PTR [rsp+128], xmm13
|
|
||||||
|
|
||||||
movd xmm5, rax
|
|
||||||
|
|
||||||
mov rax, r8
|
|
||||||
punpcklqdq xmm4, xmm0
|
|
||||||
and eax, 2097136
|
|
||||||
movd xmm10, QWORD PTR [r10+96]
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [r10+104]
|
|
||||||
xorps xmm9, xmm9
|
|
||||||
mov QWORD PTR [rsp+328], rax
|
|
||||||
movd xmm12, r11
|
|
||||||
mov QWORD PTR [rsp+320], r9
|
|
||||||
punpcklqdq xmm5, xmm0
|
|
||||||
movd xmm13, rcx
|
|
||||||
mov r12d, 524288
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightR_soft_aes_template_mainloop):
|
|
||||||
movd xmm11, r12d
|
|
||||||
mov r12, QWORD PTR [r10+272]
|
|
||||||
lea r13, QWORD PTR [rax+r11]
|
|
||||||
mov esi, DWORD PTR [r13]
|
|
||||||
movd xmm0, r9
|
|
||||||
mov r10d, DWORD PTR [r13+4]
|
|
||||||
movd xmm7, r8
|
|
||||||
mov ebp, DWORD PTR [r13+12]
|
|
||||||
mov r14d, DWORD PTR [r13+8]
|
|
||||||
mov rdx, QWORD PTR [rsp+328]
|
|
||||||
movzx ecx, sil
|
|
||||||
shr esi, 8
|
|
||||||
punpcklqdq xmm7, xmm0
|
|
||||||
mov r15d, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, r10b
|
|
||||||
shr r10d, 8
|
|
||||||
mov edi, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, r14b
|
|
||||||
shr r14d, 8
|
|
||||||
mov ebx, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, bpl
|
|
||||||
shr ebp, 8
|
|
||||||
mov r9d, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, r10b
|
|
||||||
shr r10d, 8
|
|
||||||
xor r15d, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
movzx ecx, r14b
|
|
||||||
shr r14d, 8
|
|
||||||
mov eax, r14d
|
|
||||||
shr eax, 8
|
|
||||||
xor edi, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
add eax, 256
|
|
||||||
movzx ecx, bpl
|
|
||||||
shr ebp, 8
|
|
||||||
xor ebx, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
movzx ecx, sil
|
|
||||||
shr esi, 8
|
|
||||||
xor r9d, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
add r12, 2048
|
|
||||||
movzx ecx, r10b
|
|
||||||
shr r10d, 8
|
|
||||||
add r10d, 256
|
|
||||||
mov r11d, DWORD PTR [r12+rax*4]
|
|
||||||
xor r11d, DWORD PTR [r12+rcx*4]
|
|
||||||
xor r11d, r9d
|
|
||||||
movzx ecx, sil
|
|
||||||
mov r10d, DWORD PTR [r12+r10*4]
|
|
||||||
shr esi, 8
|
|
||||||
add esi, 256
|
|
||||||
xor r10d, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, bpl
|
|
||||||
xor r10d, ebx
|
|
||||||
shr ebp, 8
|
|
||||||
movd xmm1, r11d
|
|
||||||
add ebp, 256
|
|
||||||
movd r11, xmm12
|
|
||||||
mov r9d, DWORD PTR [r12+rcx*4]
|
|
||||||
xor r9d, DWORD PTR [r12+rsi*4]
|
|
||||||
mov eax, DWORD PTR [r12+rbp*4]
|
|
||||||
xor r9d, edi
|
|
||||||
movzx ecx, r14b
|
|
||||||
movd xmm0, r10d
|
|
||||||
movd xmm2, r9d
|
|
||||||
xor eax, DWORD PTR [r12+rcx*4]
|
|
||||||
mov rcx, rdx
|
|
||||||
xor eax, r15d
|
|
||||||
punpckldq xmm2, xmm1
|
|
||||||
xor rcx, 16
|
|
||||||
movd xmm6, eax
|
|
||||||
mov rax, rdx
|
|
||||||
punpckldq xmm6, xmm0
|
|
||||||
xor rax, 32
|
|
||||||
punpckldq xmm6, xmm2
|
|
||||||
xor rdx, 48
|
|
||||||
movdqu xmm2, XMMWORD PTR [rcx+r11]
|
|
||||||
pxor xmm6, xmm2
|
|
||||||
pxor xmm6, xmm7
|
|
||||||
paddq xmm2, xmm4
|
|
||||||
movdqu xmm1, XMMWORD PTR [rax+r11]
|
|
||||||
movdqu xmm0, XMMWORD PTR [rdx+r11]
|
|
||||||
pxor xmm6, xmm1
|
|
||||||
pxor xmm6, xmm0
|
|
||||||
paddq xmm0, xmm5
|
|
||||||
movdqu XMMWORD PTR [rcx+r11], xmm0
|
|
||||||
movdqu XMMWORD PTR [rax+r11], xmm2
|
|
||||||
movd rcx, xmm13
|
|
||||||
paddq xmm1, xmm7
|
|
||||||
movdqu XMMWORD PTR [rdx+r11], xmm1
|
|
||||||
movd rdi, xmm6
|
|
||||||
mov r10, rdi
|
|
||||||
and r10d, 2097136
|
|
||||||
movdqa xmm0, xmm6
|
|
||||||
pxor xmm0, xmm4
|
|
||||||
movdqu XMMWORD PTR [r13], xmm0
|
|
||||||
|
|
||||||
mov ebx, [rsp+144]
|
|
||||||
mov ebp, [rsp+152]
|
|
||||||
add ebx, [rsp+148]
|
|
||||||
add ebp, [rsp+156]
|
|
||||||
shl rbp, 32
|
|
||||||
or rbx, rbp
|
|
||||||
|
|
||||||
xor rbx, QWORD PTR [r10+r11]
|
|
||||||
lea r14, QWORD PTR [r10+r11]
|
|
||||||
mov rbp, QWORD PTR [r14+8]
|
|
||||||
|
|
||||||
mov [rsp+160], rbx
|
|
||||||
mov [rsp+168], rdi
|
|
||||||
mov [rsp+176], rbp
|
|
||||||
mov [rsp+184], r10
|
|
||||||
mov r10, rsp
|
|
||||||
|
|
||||||
mov ebx, [rsp+144]
|
|
||||||
mov esi, [rsp+148]
|
|
||||||
mov edi, [rsp+152]
|
|
||||||
mov ebp, [rsp+156]
|
|
||||||
|
|
||||||
movd esp, xmm7
|
|
||||||
movaps xmm0, xmm7
|
|
||||||
psrldq xmm0, 8
|
|
||||||
movd r15d, xmm0
|
|
||||||
movd eax, xmm4
|
|
||||||
movd edx, xmm5
|
|
||||||
movaps xmm0, xmm5
|
|
||||||
psrldq xmm0, 8
|
|
||||||
movd r9d, xmm0
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_soft_aes_template_part2):
|
|
||||||
mov rsp, r10
|
|
||||||
mov [rsp+144], ebx
|
|
||||||
mov [rsp+148], esi
|
|
||||||
mov [rsp+152], edi
|
|
||||||
mov [rsp+156], ebp
|
|
||||||
|
|
||||||
mov edi, edi
|
|
||||||
shl rbp, 32
|
|
||||||
or rbp, rdi
|
|
||||||
xor r8, rbp
|
|
||||||
|
|
||||||
mov ebx, ebx
|
|
||||||
shl rsi, 32
|
|
||||||
or rsi, rbx
|
|
||||||
xor QWORD PTR [rsp+320], rsi
|
|
||||||
|
|
||||||
mov rbx, [rsp+160]
|
|
||||||
mov rdi, [rsp+168]
|
|
||||||
mov rbp, [rsp+176]
|
|
||||||
mov r10, [rsp+184]
|
|
||||||
|
|
||||||
mov r9, r10
|
|
||||||
xor r9, 16
|
|
||||||
mov rcx, r10
|
|
||||||
xor rcx, 32
|
|
||||||
xor r10, 48
|
|
||||||
mov rax, rbx
|
|
||||||
mul rdi
|
|
||||||
movdqu xmm2, XMMWORD PTR [r9+r11]
|
|
||||||
movdqu xmm1, XMMWORD PTR [rcx+r11]
|
|
||||||
pxor xmm6, xmm2
|
|
||||||
pxor xmm6, xmm1
|
|
||||||
paddq xmm1, xmm7
|
|
||||||
add r8, rdx
|
|
||||||
movdqu xmm0, XMMWORD PTR [r10+r11]
|
|
||||||
pxor xmm6, xmm0
|
|
||||||
paddq xmm0, xmm5
|
|
||||||
paddq xmm2, xmm4
|
|
||||||
movdqu XMMWORD PTR [r9+r11], xmm0
|
|
||||||
movdqa xmm5, xmm4
|
|
||||||
mov r9, QWORD PTR [rsp+320]
|
|
||||||
movdqa xmm4, xmm6
|
|
||||||
add r9, rax
|
|
||||||
movdqu XMMWORD PTR [rcx+r11], xmm2
|
|
||||||
movdqu XMMWORD PTR [r10+r11], xmm1
|
|
||||||
mov r10, QWORD PTR [rsp+304]
|
|
||||||
movd r12d, xmm11
|
|
||||||
mov QWORD PTR [r14], r8
|
|
||||||
xor r8, rbx
|
|
||||||
mov rax, r8
|
|
||||||
mov QWORD PTR [r14+8], r9
|
|
||||||
and eax, 2097136
|
|
||||||
xor r9, rbp
|
|
||||||
mov QWORD PTR [rsp+320], r9
|
|
||||||
mov QWORD PTR [rsp+328], rax
|
|
||||||
sub r12d, 1
|
|
||||||
jne FN_PREFIX(CryptonightR_soft_aes_template_mainloop)
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_soft_aes_template_part3):
|
|
||||||
movaps xmm6, XMMWORD PTR [rsp+16]
|
|
||||||
movaps xmm7, XMMWORD PTR [rsp+32]
|
|
||||||
movaps xmm8, XMMWORD PTR [rsp+48]
|
|
||||||
movaps xmm9, XMMWORD PTR [rsp+64]
|
|
||||||
movaps xmm10, XMMWORD PTR [rsp+80]
|
|
||||||
movaps xmm11, XMMWORD PTR [rsp+96]
|
|
||||||
movaps xmm12, XMMWORD PTR [rsp+112]
|
|
||||||
movaps xmm13, XMMWORD PTR [rsp+128]
|
|
||||||
|
|
||||||
add rsp, 232
|
|
||||||
pop r15
|
|
||||||
pop r14
|
|
||||||
pop r13
|
|
||||||
pop r12
|
|
||||||
pop rdi
|
|
||||||
pop rsi
|
|
||||||
pop rbp
|
|
||||||
pop rbx
|
|
||||||
ret
|
|
||||||
FN_PREFIX(CryptonightR_soft_aes_template_end):
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,529 +0,0 @@
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_part1)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_mainloop)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_part2)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_part3)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_end)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_double_part1)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_double_mainloop)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_double_part2)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_double_part3)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_double_part4)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightR_template_double_end)
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightR_template_part1):
|
|
||||||
mov QWORD PTR [rsp+16], rbx
|
|
||||||
mov QWORD PTR [rsp+24], rbp
|
|
||||||
mov QWORD PTR [rsp+32], rsi
|
|
||||||
push r10
|
|
||||||
push r11
|
|
||||||
push r12
|
|
||||||
push r13
|
|
||||||
push r14
|
|
||||||
push r15
|
|
||||||
push rdi
|
|
||||||
sub rsp, 64
|
|
||||||
mov r12, rcx
|
|
||||||
mov r8, QWORD PTR [r12+32]
|
|
||||||
mov rdx, r12
|
|
||||||
xor r8, QWORD PTR [r12]
|
|
||||||
mov r15, QWORD PTR [r12+40]
|
|
||||||
mov r9, r8
|
|
||||||
xor r15, QWORD PTR [r12+8]
|
|
||||||
mov r11, QWORD PTR [r12+224]
|
|
||||||
mov r12, QWORD PTR [r12+56]
|
|
||||||
xor r12, QWORD PTR [rdx+24]
|
|
||||||
mov rax, QWORD PTR [rdx+48]
|
|
||||||
xor rax, QWORD PTR [rdx+16]
|
|
||||||
movaps XMMWORD PTR [rsp+48], xmm6
|
|
||||||
movd xmm0, r12
|
|
||||||
movaps XMMWORD PTR [rsp+32], xmm7
|
|
||||||
movaps XMMWORD PTR [rsp+16], xmm8
|
|
||||||
movaps XMMWORD PTR [rsp], xmm9
|
|
||||||
mov r12, QWORD PTR [rdx+88]
|
|
||||||
xor r12, QWORD PTR [rdx+72]
|
|
||||||
movd xmm6, rax
|
|
||||||
mov rax, QWORD PTR [rdx+80]
|
|
||||||
xor rax, QWORD PTR [rdx+64]
|
|
||||||
punpcklqdq xmm6, xmm0
|
|
||||||
and r9d, 2097136
|
|
||||||
movd xmm0, r12
|
|
||||||
movd xmm7, rax
|
|
||||||
punpcklqdq xmm7, xmm0
|
|
||||||
mov r10d, r9d
|
|
||||||
movd xmm9, rsp
|
|
||||||
mov rsp, r8
|
|
||||||
mov r8d, 524288
|
|
||||||
|
|
||||||
mov ebx, [rdx+96]
|
|
||||||
mov esi, [rdx+100]
|
|
||||||
mov edi, [rdx+104]
|
|
||||||
mov ebp, [rdx+108]
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightR_template_mainloop):
|
|
||||||
movdqa xmm5, XMMWORD PTR [r9+r11]
|
|
||||||
movd xmm0, r15
|
|
||||||
movd xmm4, rsp
|
|
||||||
punpcklqdq xmm4, xmm0
|
|
||||||
lea rdx, QWORD PTR [r9+r11]
|
|
||||||
|
|
||||||
aesenc xmm5, xmm4
|
|
||||||
|
|
||||||
mov r12d, r9d
|
|
||||||
mov eax, r9d
|
|
||||||
xor r9d, 48
|
|
||||||
xor r12d, 16
|
|
||||||
xor eax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [r9+r11]
|
|
||||||
movaps xmm3, xmm0
|
|
||||||
movdqu xmm2, XMMWORD PTR [r12+r11]
|
|
||||||
movdqu xmm1, XMMWORD PTR [rax+r11]
|
|
||||||
pxor xmm0, xmm2
|
|
||||||
pxor xmm5, xmm1
|
|
||||||
pxor xmm5, xmm0
|
|
||||||
paddq xmm3, xmm7
|
|
||||||
paddq xmm2, xmm6
|
|
||||||
paddq xmm1, xmm4
|
|
||||||
movdqu XMMWORD PTR [r12+r11], xmm3
|
|
||||||
movdqu XMMWORD PTR [rax+r11], xmm2
|
|
||||||
movdqu XMMWORD PTR [r9+r11], xmm1
|
|
||||||
|
|
||||||
movd r12, xmm5
|
|
||||||
movd r10d, xmm5
|
|
||||||
and r10d, 2097136
|
|
||||||
|
|
||||||
movdqa xmm0, xmm5
|
|
||||||
pxor xmm0, xmm6
|
|
||||||
movdqu XMMWORD PTR [rdx], xmm0
|
|
||||||
|
|
||||||
lea r13d, [ebx+esi]
|
|
||||||
lea edx, [edi+ebp]
|
|
||||||
shl rdx, 32
|
|
||||||
or r13, rdx
|
|
||||||
|
|
||||||
xor r13, QWORD PTR [r10+r11]
|
|
||||||
mov r14, QWORD PTR [r10+r11+8]
|
|
||||||
|
|
||||||
movd eax, xmm6
|
|
||||||
movd edx, xmm7
|
|
||||||
pextrd r9d, xmm7, 2
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_template_part2):
|
|
||||||
mov eax, edi
|
|
||||||
mov edx, ebp
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor rsp, rax
|
|
||||||
|
|
||||||
mov eax, ebx
|
|
||||||
mov edx, esi
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r15, rax
|
|
||||||
|
|
||||||
mov rax, r13
|
|
||||||
mul r12
|
|
||||||
|
|
||||||
mov r9d, r10d
|
|
||||||
mov r12d, r10d
|
|
||||||
xor r9d, 16
|
|
||||||
xor r12d, 32
|
|
||||||
xor r10d, 48
|
|
||||||
movdqa xmm1, XMMWORD PTR [r12+r11]
|
|
||||||
movaps xmm3, xmm1
|
|
||||||
movdqa xmm2, XMMWORD PTR [r9+r11]
|
|
||||||
movdqa xmm0, XMMWORD PTR [r10+r11]
|
|
||||||
pxor xmm1, xmm2
|
|
||||||
pxor xmm5, xmm0
|
|
||||||
pxor xmm5, xmm1
|
|
||||||
paddq xmm3, xmm4
|
|
||||||
paddq xmm2, xmm6
|
|
||||||
paddq xmm0, xmm7
|
|
||||||
movdqu XMMWORD PTR [r9+r11], xmm0
|
|
||||||
movdqu XMMWORD PTR [r12+r11], xmm2
|
|
||||||
movdqu XMMWORD PTR [r10+r11], xmm3
|
|
||||||
|
|
||||||
movdqa xmm7, xmm6
|
|
||||||
add r15, rax
|
|
||||||
add rsp, rdx
|
|
||||||
xor r10, 48
|
|
||||||
mov QWORD PTR [r10+r11], rsp
|
|
||||||
xor rsp, r13
|
|
||||||
mov r9d, esp
|
|
||||||
mov QWORD PTR [r10+r11+8], r15
|
|
||||||
and r9d, 2097136
|
|
||||||
xor r15, r14
|
|
||||||
movdqa xmm6, xmm5
|
|
||||||
dec r8d
|
|
||||||
jnz FN_PREFIX(CryptonightR_template_mainloop)
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_template_part3):
|
|
||||||
movd rsp, xmm9
|
|
||||||
|
|
||||||
mov rbx, QWORD PTR [rsp+136]
|
|
||||||
mov rbp, QWORD PTR [rsp+144]
|
|
||||||
mov rsi, QWORD PTR [rsp+152]
|
|
||||||
movaps xmm6, XMMWORD PTR [rsp+48]
|
|
||||||
movaps xmm7, XMMWORD PTR [rsp+32]
|
|
||||||
movaps xmm8, XMMWORD PTR [rsp+16]
|
|
||||||
movaps xmm9, XMMWORD PTR [rsp]
|
|
||||||
add rsp, 64
|
|
||||||
pop rdi
|
|
||||||
pop r15
|
|
||||||
pop r14
|
|
||||||
pop r13
|
|
||||||
pop r12
|
|
||||||
pop r11
|
|
||||||
pop r10
|
|
||||||
ret 0
|
|
||||||
FN_PREFIX(CryptonightR_template_end):
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightR_template_double_part1):
|
|
||||||
mov QWORD PTR [rsp+24], rbx
|
|
||||||
push rbp
|
|
||||||
push rsi
|
|
||||||
push rdi
|
|
||||||
push r12
|
|
||||||
push r13
|
|
||||||
push r14
|
|
||||||
push r15
|
|
||||||
sub rsp, 320
|
|
||||||
mov r14, QWORD PTR [rcx+32]
|
|
||||||
mov r8, rcx
|
|
||||||
xor r14, QWORD PTR [rcx]
|
|
||||||
mov r12, QWORD PTR [rcx+40]
|
|
||||||
mov ebx, r14d
|
|
||||||
mov rsi, QWORD PTR [rcx+224]
|
|
||||||
and ebx, 2097136
|
|
||||||
xor r12, QWORD PTR [rcx+8]
|
|
||||||
mov rcx, QWORD PTR [rcx+56]
|
|
||||||
xor rcx, QWORD PTR [r8+24]
|
|
||||||
mov rax, QWORD PTR [r8+48]
|
|
||||||
xor rax, QWORD PTR [r8+16]
|
|
||||||
mov r15, QWORD PTR [rdx+32]
|
|
||||||
xor r15, QWORD PTR [rdx]
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [r8+88]
|
|
||||||
xor rcx, QWORD PTR [r8+72]
|
|
||||||
mov r13, QWORD PTR [rdx+40]
|
|
||||||
mov rdi, QWORD PTR [rdx+224]
|
|
||||||
xor r13, QWORD PTR [rdx+8]
|
|
||||||
movaps XMMWORD PTR [rsp+160], xmm6
|
|
||||||
movaps XMMWORD PTR [rsp+176], xmm7
|
|
||||||
movaps XMMWORD PTR [rsp+192], xmm8
|
|
||||||
movaps XMMWORD PTR [rsp+208], xmm9
|
|
||||||
movaps XMMWORD PTR [rsp+224], xmm10
|
|
||||||
movaps XMMWORD PTR [rsp+240], xmm11
|
|
||||||
movaps XMMWORD PTR [rsp+256], xmm12
|
|
||||||
movaps XMMWORD PTR [rsp+272], xmm13
|
|
||||||
movaps XMMWORD PTR [rsp+288], xmm14
|
|
||||||
movaps XMMWORD PTR [rsp+304], xmm15
|
|
||||||
movd xmm7, rax
|
|
||||||
mov rax, QWORD PTR [r8+80]
|
|
||||||
xor rax, QWORD PTR [r8+64]
|
|
||||||
|
|
||||||
movaps xmm1, XMMWORD PTR [rdx+96]
|
|
||||||
movaps xmm2, XMMWORD PTR [r8+96]
|
|
||||||
movaps XMMWORD PTR [rsp], xmm1
|
|
||||||
movaps XMMWORD PTR [rsp+16], xmm2
|
|
||||||
|
|
||||||
mov r8d, r15d
|
|
||||||
punpcklqdq xmm7, xmm0
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [rdx+56]
|
|
||||||
xor rcx, QWORD PTR [rdx+24]
|
|
||||||
movd xmm9, rax
|
|
||||||
mov QWORD PTR [rsp+128], rsi
|
|
||||||
mov rax, QWORD PTR [rdx+48]
|
|
||||||
xor rax, QWORD PTR [rdx+16]
|
|
||||||
punpcklqdq xmm9, xmm0
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [rdx+88]
|
|
||||||
xor rcx, QWORD PTR [rdx+72]
|
|
||||||
movd xmm8, rax
|
|
||||||
mov QWORD PTR [rsp+136], rdi
|
|
||||||
mov rax, QWORD PTR [rdx+80]
|
|
||||||
xor rax, QWORD PTR [rdx+64]
|
|
||||||
punpcklqdq xmm8, xmm0
|
|
||||||
and r8d, 2097136
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov r11d, 524288
|
|
||||||
movd xmm10, rax
|
|
||||||
punpcklqdq xmm10, xmm0
|
|
||||||
|
|
||||||
movd xmm14, QWORD PTR [rsp+128]
|
|
||||||
movd xmm15, QWORD PTR [rsp+136]
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightR_template_double_mainloop):
|
|
||||||
movdqu xmm6, XMMWORD PTR [rbx+rsi]
|
|
||||||
movd xmm0, r12
|
|
||||||
mov ecx, ebx
|
|
||||||
movd xmm3, r14
|
|
||||||
punpcklqdq xmm3, xmm0
|
|
||||||
xor ebx, 16
|
|
||||||
aesenc xmm6, xmm3
|
|
||||||
movd xmm4, r15
|
|
||||||
movdqu xmm0, XMMWORD PTR [rbx+rsi]
|
|
||||||
pxor xmm6, xmm0
|
|
||||||
xor ebx, 48
|
|
||||||
paddq xmm0, xmm7
|
|
||||||
movdqu xmm1, XMMWORD PTR [rbx+rsi]
|
|
||||||
pxor xmm6, xmm1
|
|
||||||
movdqu XMMWORD PTR [rbx+rsi], xmm0
|
|
||||||
paddq xmm1, xmm3
|
|
||||||
xor ebx, 16
|
|
||||||
mov eax, ebx
|
|
||||||
xor rax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [rbx+rsi]
|
|
||||||
pxor xmm6, xmm0
|
|
||||||
movd rdx, xmm6
|
|
||||||
movdqu XMMWORD PTR [rbx+rsi], xmm1
|
|
||||||
paddq xmm0, xmm9
|
|
||||||
movdqu XMMWORD PTR [rax+rsi], xmm0
|
|
||||||
movdqa xmm0, xmm6
|
|
||||||
pxor xmm0, xmm7
|
|
||||||
movdqu XMMWORD PTR [rcx+rsi], xmm0
|
|
||||||
mov esi, edx
|
|
||||||
movdqu xmm5, XMMWORD PTR [r8+rdi]
|
|
||||||
and esi, 2097136
|
|
||||||
mov ecx, r8d
|
|
||||||
movd xmm0, r13
|
|
||||||
punpcklqdq xmm4, xmm0
|
|
||||||
xor r8d, 16
|
|
||||||
aesenc xmm5, xmm4
|
|
||||||
movdqu xmm0, XMMWORD PTR [r8+rdi]
|
|
||||||
pxor xmm5, xmm0
|
|
||||||
xor r8d, 48
|
|
||||||
paddq xmm0, xmm8
|
|
||||||
movdqu xmm1, XMMWORD PTR [r8+rdi]
|
|
||||||
pxor xmm5, xmm1
|
|
||||||
movdqu XMMWORD PTR [r8+rdi], xmm0
|
|
||||||
paddq xmm1, xmm4
|
|
||||||
xor r8d, 16
|
|
||||||
mov eax, r8d
|
|
||||||
xor rax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [r8+rdi]
|
|
||||||
pxor xmm5, xmm0
|
|
||||||
movdqu XMMWORD PTR [r8+rdi], xmm1
|
|
||||||
paddq xmm0, xmm10
|
|
||||||
movdqu XMMWORD PTR [rax+rdi], xmm0
|
|
||||||
movdqa xmm0, xmm5
|
|
||||||
pxor xmm0, xmm8
|
|
||||||
movdqu XMMWORD PTR [rcx+rdi], xmm0
|
|
||||||
movd rdi, xmm5
|
|
||||||
movd rcx, xmm14
|
|
||||||
mov ebp, edi
|
|
||||||
mov r8, QWORD PTR [rcx+rsi]
|
|
||||||
mov r10, QWORD PTR [rcx+rsi+8]
|
|
||||||
lea r9, QWORD PTR [rcx+rsi]
|
|
||||||
xor esi, 16
|
|
||||||
|
|
||||||
movd xmm0, rsp
|
|
||||||
movd xmm1, rsi
|
|
||||||
movd xmm2, rdi
|
|
||||||
movd xmm11, rbp
|
|
||||||
movd xmm12, r15
|
|
||||||
movd xmm13, rdx
|
|
||||||
mov [rsp+104], rcx
|
|
||||||
mov [rsp+112], r9
|
|
||||||
|
|
||||||
mov ebx, DWORD PTR [rsp+16]
|
|
||||||
mov esi, DWORD PTR [rsp+20]
|
|
||||||
mov edi, DWORD PTR [rsp+24]
|
|
||||||
mov ebp, DWORD PTR [rsp+28]
|
|
||||||
|
|
||||||
lea eax, [ebx+esi]
|
|
||||||
lea edx, [edi+ebp]
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r8, rax
|
|
||||||
|
|
||||||
movd esp, xmm3
|
|
||||||
pextrd r15d, xmm3, 2
|
|
||||||
movd eax, xmm7
|
|
||||||
movd edx, xmm9
|
|
||||||
pextrd r9d, xmm9, 2
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_template_double_part2):
|
|
||||||
|
|
||||||
mov eax, edi
|
|
||||||
mov edx, ebp
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r14, rax
|
|
||||||
|
|
||||||
mov eax, ebx
|
|
||||||
mov edx, esi
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r12, rax
|
|
||||||
|
|
||||||
movd rsp, xmm0
|
|
||||||
mov DWORD PTR [rsp+16], ebx
|
|
||||||
mov DWORD PTR [rsp+20], esi
|
|
||||||
mov DWORD PTR [rsp+24], edi
|
|
||||||
mov DWORD PTR [rsp+28], ebp
|
|
||||||
|
|
||||||
movd rsi, xmm1
|
|
||||||
movd rdi, xmm2
|
|
||||||
movd rbp, xmm11
|
|
||||||
movd r15, xmm12
|
|
||||||
movd rdx, xmm13
|
|
||||||
mov rcx, [rsp+104]
|
|
||||||
mov r9, [rsp+112]
|
|
||||||
|
|
||||||
mov rbx, r8
|
|
||||||
mov rax, r8
|
|
||||||
mul rdx
|
|
||||||
and ebp, 2097136
|
|
||||||
mov r8, rax
|
|
||||||
movdqu xmm1, XMMWORD PTR [rcx+rsi]
|
|
||||||
pxor xmm6, xmm1
|
|
||||||
xor esi, 48
|
|
||||||
paddq xmm1, xmm7
|
|
||||||
movdqu xmm2, XMMWORD PTR [rsi+rcx]
|
|
||||||
pxor xmm6, xmm2
|
|
||||||
paddq xmm2, xmm3
|
|
||||||
movdqu XMMWORD PTR [rsi+rcx], xmm1
|
|
||||||
xor esi, 16
|
|
||||||
mov eax, esi
|
|
||||||
mov rsi, rcx
|
|
||||||
movdqu xmm0, XMMWORD PTR [rax+rcx]
|
|
||||||
pxor xmm6, xmm0
|
|
||||||
movdqu XMMWORD PTR [rax+rcx], xmm2
|
|
||||||
paddq xmm0, xmm9
|
|
||||||
add r12, r8
|
|
||||||
xor rax, 32
|
|
||||||
add r14, rdx
|
|
||||||
movdqa xmm9, xmm7
|
|
||||||
movdqa xmm7, xmm6
|
|
||||||
movdqu XMMWORD PTR [rax+rcx], xmm0
|
|
||||||
mov QWORD PTR [r9+8], r12
|
|
||||||
xor r12, r10
|
|
||||||
mov QWORD PTR [r9], r14
|
|
||||||
movd rcx, xmm15
|
|
||||||
xor r14, rbx
|
|
||||||
mov r10d, ebp
|
|
||||||
mov ebx, r14d
|
|
||||||
xor ebp, 16
|
|
||||||
and ebx, 2097136
|
|
||||||
mov r8, QWORD PTR [r10+rcx]
|
|
||||||
mov r9, QWORD PTR [r10+rcx+8]
|
|
||||||
|
|
||||||
movd xmm0, rsp
|
|
||||||
movd xmm1, rbx
|
|
||||||
movd xmm2, rsi
|
|
||||||
movd xmm11, rdi
|
|
||||||
movd xmm12, rbp
|
|
||||||
movd xmm13, r15
|
|
||||||
mov [rsp+104], rcx
|
|
||||||
mov [rsp+112], r9
|
|
||||||
|
|
||||||
mov ebx, DWORD PTR [rsp]
|
|
||||||
mov esi, DWORD PTR [rsp+4]
|
|
||||||
mov edi, DWORD PTR [rsp+8]
|
|
||||||
mov ebp, DWORD PTR [rsp+12]
|
|
||||||
|
|
||||||
lea eax, [ebx+esi]
|
|
||||||
lea edx, [edi+ebp]
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
|
|
||||||
xor r8, rax
|
|
||||||
movd xmm3, r8
|
|
||||||
|
|
||||||
movd esp, xmm4
|
|
||||||
pextrd r15d, xmm4, 2
|
|
||||||
movd eax, xmm8
|
|
||||||
movd edx, xmm10
|
|
||||||
pextrd r9d, xmm10, 2
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_template_double_part3):
|
|
||||||
|
|
||||||
movd r15, xmm13
|
|
||||||
|
|
||||||
mov eax, edi
|
|
||||||
mov edx, ebp
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r15, rax
|
|
||||||
|
|
||||||
mov eax, ebx
|
|
||||||
mov edx, esi
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r13, rax
|
|
||||||
|
|
||||||
movd rsp, xmm0
|
|
||||||
mov DWORD PTR [rsp], ebx
|
|
||||||
mov DWORD PTR [rsp+4], esi
|
|
||||||
mov DWORD PTR [rsp+8], edi
|
|
||||||
mov DWORD PTR [rsp+12], ebp
|
|
||||||
|
|
||||||
movd rbx, xmm1
|
|
||||||
movd rsi, xmm2
|
|
||||||
movd rdi, xmm11
|
|
||||||
movd rbp, xmm12
|
|
||||||
mov rcx, [rsp+104]
|
|
||||||
mov r9, [rsp+112]
|
|
||||||
|
|
||||||
mov rax, r8
|
|
||||||
mul rdi
|
|
||||||
mov rdi, rcx
|
|
||||||
mov r8, rax
|
|
||||||
movdqu xmm1, XMMWORD PTR [rbp+rcx]
|
|
||||||
pxor xmm5, xmm1
|
|
||||||
xor ebp, 48
|
|
||||||
paddq xmm1, xmm8
|
|
||||||
add r13, r8
|
|
||||||
movdqu xmm2, XMMWORD PTR [rbp+rcx]
|
|
||||||
pxor xmm5, xmm2
|
|
||||||
add r15, rdx
|
|
||||||
movdqu XMMWORD PTR [rbp+rcx], xmm1
|
|
||||||
paddq xmm2, xmm4
|
|
||||||
xor ebp, 16
|
|
||||||
mov eax, ebp
|
|
||||||
xor rax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [rbp+rcx]
|
|
||||||
pxor xmm5, xmm0
|
|
||||||
movdqu XMMWORD PTR [rbp+rcx], xmm2
|
|
||||||
paddq xmm0, xmm10
|
|
||||||
movdqu XMMWORD PTR [rax+rcx], xmm0
|
|
||||||
movd rax, xmm3
|
|
||||||
movdqa xmm10, xmm8
|
|
||||||
mov QWORD PTR [r10+rcx], r15
|
|
||||||
movdqa xmm8, xmm5
|
|
||||||
xor r15, rax
|
|
||||||
mov QWORD PTR [r10+rcx+8], r13
|
|
||||||
mov r8d, r15d
|
|
||||||
xor r13, r9
|
|
||||||
and r8d, 2097136
|
|
||||||
dec r11d
|
|
||||||
jnz FN_PREFIX(CryptonightR_template_double_mainloop)
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightR_template_double_part4):
|
|
||||||
|
|
||||||
mov rbx, QWORD PTR [rsp+400]
|
|
||||||
movaps xmm6, XMMWORD PTR [rsp+160]
|
|
||||||
movaps xmm7, XMMWORD PTR [rsp+176]
|
|
||||||
movaps xmm8, XMMWORD PTR [rsp+192]
|
|
||||||
movaps xmm9, XMMWORD PTR [rsp+208]
|
|
||||||
movaps xmm10, XMMWORD PTR [rsp+224]
|
|
||||||
movaps xmm11, XMMWORD PTR [rsp+240]
|
|
||||||
movaps xmm12, XMMWORD PTR [rsp+256]
|
|
||||||
movaps xmm13, XMMWORD PTR [rsp+272]
|
|
||||||
movaps xmm14, XMMWORD PTR [rsp+288]
|
|
||||||
movaps xmm15, XMMWORD PTR [rsp+304]
|
|
||||||
add rsp, 320
|
|
||||||
pop r15
|
|
||||||
pop r14
|
|
||||||
pop r13
|
|
||||||
pop r12
|
|
||||||
pop rdi
|
|
||||||
pop rsi
|
|
||||||
pop rbp
|
|
||||||
ret 0
|
|
||||||
FN_PREFIX(CryptonightR_template_double_end):
|
|
|
@ -1,266 +0,0 @@
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_soft_aes_template_part1)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_soft_aes_template_mainloop)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_soft_aes_template_part2)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_soft_aes_template_part3)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_soft_aes_template_end)
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightWOW_soft_aes_template_part1):
|
|
||||||
mov QWORD PTR [rsp+8], rcx
|
|
||||||
push rbx
|
|
||||||
push rbp
|
|
||||||
push rsi
|
|
||||||
push rdi
|
|
||||||
push r12
|
|
||||||
push r13
|
|
||||||
push r14
|
|
||||||
push r15
|
|
||||||
sub rsp, 232
|
|
||||||
|
|
||||||
mov eax, [rcx+96]
|
|
||||||
mov ebx, [rcx+100]
|
|
||||||
mov esi, [rcx+104]
|
|
||||||
mov edx, [rcx+108]
|
|
||||||
mov [rsp+144], eax
|
|
||||||
mov [rsp+148], ebx
|
|
||||||
mov [rsp+152], esi
|
|
||||||
mov [rsp+156], edx
|
|
||||||
|
|
||||||
mov rax, QWORD PTR [rcx+48]
|
|
||||||
mov r10, rcx
|
|
||||||
xor rax, QWORD PTR [rcx+16]
|
|
||||||
mov r8, QWORD PTR [rcx+32]
|
|
||||||
xor r8, QWORD PTR [rcx]
|
|
||||||
mov r9, QWORD PTR [rcx+40]
|
|
||||||
xor r9, QWORD PTR [rcx+8]
|
|
||||||
movd xmm4, rax
|
|
||||||
mov rdx, QWORD PTR [rcx+56]
|
|
||||||
xor rdx, QWORD PTR [rcx+24]
|
|
||||||
mov r11, QWORD PTR [rcx+224]
|
|
||||||
mov rcx, QWORD PTR [rcx+88]
|
|
||||||
xor rcx, QWORD PTR [r10+72]
|
|
||||||
mov rax, QWORD PTR [r10+80]
|
|
||||||
movd xmm0, rdx
|
|
||||||
xor rax, QWORD PTR [r10+64]
|
|
||||||
|
|
||||||
movaps XMMWORD PTR [rsp+16], xmm6
|
|
||||||
movaps XMMWORD PTR [rsp+32], xmm7
|
|
||||||
movaps XMMWORD PTR [rsp+48], xmm8
|
|
||||||
movaps XMMWORD PTR [rsp+64], xmm9
|
|
||||||
movaps XMMWORD PTR [rsp+80], xmm10
|
|
||||||
movaps XMMWORD PTR [rsp+96], xmm11
|
|
||||||
movaps XMMWORD PTR [rsp+112], xmm12
|
|
||||||
movaps XMMWORD PTR [rsp+128], xmm13
|
|
||||||
|
|
||||||
movd xmm5, rax
|
|
||||||
|
|
||||||
mov rax, r8
|
|
||||||
punpcklqdq xmm4, xmm0
|
|
||||||
and eax, 2097136
|
|
||||||
movd xmm10, QWORD PTR [r10+96]
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [r10+104]
|
|
||||||
xorps xmm9, xmm9
|
|
||||||
mov QWORD PTR [rsp+328], rax
|
|
||||||
movd xmm12, r11
|
|
||||||
mov QWORD PTR [rsp+320], r9
|
|
||||||
punpcklqdq xmm5, xmm0
|
|
||||||
movd xmm13, rcx
|
|
||||||
mov r12d, 524288
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightWOW_soft_aes_template_mainloop):
|
|
||||||
movd xmm11, r12d
|
|
||||||
mov r12, QWORD PTR [r10+272]
|
|
||||||
lea r13, QWORD PTR [rax+r11]
|
|
||||||
mov esi, DWORD PTR [r13]
|
|
||||||
movd xmm0, r9
|
|
||||||
mov r10d, DWORD PTR [r13+4]
|
|
||||||
movd xmm7, r8
|
|
||||||
mov ebp, DWORD PTR [r13+12]
|
|
||||||
mov r14d, DWORD PTR [r13+8]
|
|
||||||
mov rdx, QWORD PTR [rsp+328]
|
|
||||||
movzx ecx, sil
|
|
||||||
shr esi, 8
|
|
||||||
punpcklqdq xmm7, xmm0
|
|
||||||
mov r15d, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, r10b
|
|
||||||
shr r10d, 8
|
|
||||||
mov edi, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, r14b
|
|
||||||
shr r14d, 8
|
|
||||||
mov ebx, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, bpl
|
|
||||||
shr ebp, 8
|
|
||||||
mov r9d, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, r10b
|
|
||||||
shr r10d, 8
|
|
||||||
xor r15d, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
movzx ecx, r14b
|
|
||||||
shr r14d, 8
|
|
||||||
mov eax, r14d
|
|
||||||
shr eax, 8
|
|
||||||
xor edi, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
add eax, 256
|
|
||||||
movzx ecx, bpl
|
|
||||||
shr ebp, 8
|
|
||||||
xor ebx, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
movzx ecx, sil
|
|
||||||
shr esi, 8
|
|
||||||
xor r9d, DWORD PTR [r12+rcx*4+1024]
|
|
||||||
add r12, 2048
|
|
||||||
movzx ecx, r10b
|
|
||||||
shr r10d, 8
|
|
||||||
add r10d, 256
|
|
||||||
mov r11d, DWORD PTR [r12+rax*4]
|
|
||||||
xor r11d, DWORD PTR [r12+rcx*4]
|
|
||||||
xor r11d, r9d
|
|
||||||
movzx ecx, sil
|
|
||||||
mov r10d, DWORD PTR [r12+r10*4]
|
|
||||||
shr esi, 8
|
|
||||||
add esi, 256
|
|
||||||
xor r10d, DWORD PTR [r12+rcx*4]
|
|
||||||
movzx ecx, bpl
|
|
||||||
xor r10d, ebx
|
|
||||||
shr ebp, 8
|
|
||||||
movd xmm1, r11d
|
|
||||||
add ebp, 256
|
|
||||||
movd r11, xmm12
|
|
||||||
mov r9d, DWORD PTR [r12+rcx*4]
|
|
||||||
xor r9d, DWORD PTR [r12+rsi*4]
|
|
||||||
mov eax, DWORD PTR [r12+rbp*4]
|
|
||||||
xor r9d, edi
|
|
||||||
movzx ecx, r14b
|
|
||||||
movd xmm0, r10d
|
|
||||||
movd xmm2, r9d
|
|
||||||
xor eax, DWORD PTR [r12+rcx*4]
|
|
||||||
mov rcx, rdx
|
|
||||||
xor eax, r15d
|
|
||||||
punpckldq xmm2, xmm1
|
|
||||||
xor rcx, 16
|
|
||||||
movd xmm6, eax
|
|
||||||
mov rax, rdx
|
|
||||||
punpckldq xmm6, xmm0
|
|
||||||
xor rax, 32
|
|
||||||
punpckldq xmm6, xmm2
|
|
||||||
xor rdx, 48
|
|
||||||
movdqu xmm2, XMMWORD PTR [rcx+r11]
|
|
||||||
pxor xmm6, xmm7
|
|
||||||
paddq xmm2, xmm4
|
|
||||||
movdqu xmm1, XMMWORD PTR [rax+r11]
|
|
||||||
movdqu xmm0, XMMWORD PTR [rdx+r11]
|
|
||||||
paddq xmm0, xmm5
|
|
||||||
movdqu XMMWORD PTR [rcx+r11], xmm0
|
|
||||||
movdqu XMMWORD PTR [rax+r11], xmm2
|
|
||||||
movd rcx, xmm13
|
|
||||||
paddq xmm1, xmm7
|
|
||||||
movdqu XMMWORD PTR [rdx+r11], xmm1
|
|
||||||
movd rdi, xmm6
|
|
||||||
mov r10, rdi
|
|
||||||
and r10d, 2097136
|
|
||||||
movdqa xmm0, xmm6
|
|
||||||
pxor xmm0, xmm4
|
|
||||||
movdqu XMMWORD PTR [r13], xmm0
|
|
||||||
|
|
||||||
mov ebx, [rsp+144]
|
|
||||||
mov ebp, [rsp+152]
|
|
||||||
add ebx, [rsp+148]
|
|
||||||
add ebp, [rsp+156]
|
|
||||||
shl rbp, 32
|
|
||||||
or rbx, rbp
|
|
||||||
|
|
||||||
xor rbx, QWORD PTR [r10+r11]
|
|
||||||
lea r14, QWORD PTR [r10+r11]
|
|
||||||
mov rbp, QWORD PTR [r14+8]
|
|
||||||
|
|
||||||
mov [rsp+160], rbx
|
|
||||||
mov [rsp+168], rdi
|
|
||||||
mov [rsp+176], rbp
|
|
||||||
mov [rsp+184], r10
|
|
||||||
mov r10, rsp
|
|
||||||
|
|
||||||
mov ebx, [rsp+144]
|
|
||||||
mov esi, [rsp+148]
|
|
||||||
mov edi, [rsp+152]
|
|
||||||
mov ebp, [rsp+156]
|
|
||||||
|
|
||||||
movd esp, xmm7
|
|
||||||
movaps xmm0, xmm7
|
|
||||||
psrldq xmm0, 8
|
|
||||||
movd r15d, xmm0
|
|
||||||
movd eax, xmm4
|
|
||||||
movd edx, xmm5
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_soft_aes_template_part2):
|
|
||||||
mov rsp, r10
|
|
||||||
mov [rsp+144], ebx
|
|
||||||
mov [rsp+148], esi
|
|
||||||
mov [rsp+152], edi
|
|
||||||
mov [rsp+156], ebp
|
|
||||||
|
|
||||||
mov rbx, [rsp+160]
|
|
||||||
mov rdi, [rsp+168]
|
|
||||||
mov rbp, [rsp+176]
|
|
||||||
mov r10, [rsp+184]
|
|
||||||
|
|
||||||
mov r9, r10
|
|
||||||
xor r9, 16
|
|
||||||
mov rcx, r10
|
|
||||||
xor rcx, 32
|
|
||||||
xor r10, 48
|
|
||||||
mov rax, rbx
|
|
||||||
mul rdi
|
|
||||||
movdqu xmm2, XMMWORD PTR [r9+r11]
|
|
||||||
movdqu xmm1, XMMWORD PTR [rcx+r11]
|
|
||||||
paddq xmm1, xmm7
|
|
||||||
movd xmm0, rax
|
|
||||||
movd xmm3, rdx
|
|
||||||
xor rax, QWORD PTR [r11+rcx+8]
|
|
||||||
xor rdx, QWORD PTR [rcx+r11]
|
|
||||||
punpcklqdq xmm3, xmm0
|
|
||||||
add r8, rdx
|
|
||||||
movdqu xmm0, XMMWORD PTR [r10+r11]
|
|
||||||
pxor xmm2, xmm3
|
|
||||||
paddq xmm0, xmm5
|
|
||||||
paddq xmm2, xmm4
|
|
||||||
movdqu XMMWORD PTR [r9+r11], xmm0
|
|
||||||
movdqa xmm5, xmm4
|
|
||||||
mov r9, QWORD PTR [rsp+320]
|
|
||||||
movdqa xmm4, xmm6
|
|
||||||
add r9, rax
|
|
||||||
movdqu XMMWORD PTR [rcx+r11], xmm2
|
|
||||||
movdqu XMMWORD PTR [r10+r11], xmm1
|
|
||||||
mov r10, QWORD PTR [rsp+304]
|
|
||||||
movd r12d, xmm11
|
|
||||||
mov QWORD PTR [r14], r8
|
|
||||||
xor r8, rbx
|
|
||||||
mov rax, r8
|
|
||||||
mov QWORD PTR [r14+8], r9
|
|
||||||
and eax, 2097136
|
|
||||||
xor r9, rbp
|
|
||||||
mov QWORD PTR [rsp+320], r9
|
|
||||||
mov QWORD PTR [rsp+328], rax
|
|
||||||
sub r12d, 1
|
|
||||||
jne FN_PREFIX(CryptonightWOW_soft_aes_template_mainloop)
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_soft_aes_template_part3):
|
|
||||||
movaps xmm6, XMMWORD PTR [rsp+16]
|
|
||||||
movaps xmm7, XMMWORD PTR [rsp+32]
|
|
||||||
movaps xmm8, XMMWORD PTR [rsp+48]
|
|
||||||
movaps xmm9, XMMWORD PTR [rsp+64]
|
|
||||||
movaps xmm10, XMMWORD PTR [rsp+80]
|
|
||||||
movaps xmm11, XMMWORD PTR [rsp+96]
|
|
||||||
movaps xmm12, XMMWORD PTR [rsp+112]
|
|
||||||
movaps xmm13, XMMWORD PTR [rsp+128]
|
|
||||||
|
|
||||||
add rsp, 232
|
|
||||||
pop r15
|
|
||||||
pop r14
|
|
||||||
pop r13
|
|
||||||
pop r12
|
|
||||||
pop rdi
|
|
||||||
pop rsi
|
|
||||||
pop rbp
|
|
||||||
pop rbx
|
|
||||||
ret
|
|
||||||
FN_PREFIX(CryptonightWOW_soft_aes_template_end):
|
|
|
@ -1,486 +0,0 @@
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_part1)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_mainloop)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_part2)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_part3)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_end)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_double_part1)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_double_mainloop)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_double_part2)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_double_part3)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_double_part4)
|
|
||||||
PUBLIC FN_PREFIX(CryptonightWOW_template_double_end)
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightWOW_template_part1):
|
|
||||||
mov QWORD PTR [rsp+16], rbx
|
|
||||||
mov QWORD PTR [rsp+24], rbp
|
|
||||||
mov QWORD PTR [rsp+32], rsi
|
|
||||||
push r10
|
|
||||||
push r11
|
|
||||||
push r12
|
|
||||||
push r13
|
|
||||||
push r14
|
|
||||||
push r15
|
|
||||||
push rdi
|
|
||||||
sub rsp, 64
|
|
||||||
mov r12, rcx
|
|
||||||
mov r8, QWORD PTR [r12+32]
|
|
||||||
mov rdx, r12
|
|
||||||
xor r8, QWORD PTR [r12]
|
|
||||||
mov r15, QWORD PTR [r12+40]
|
|
||||||
mov r9, r8
|
|
||||||
xor r15, QWORD PTR [r12+8]
|
|
||||||
mov r11, QWORD PTR [r12+224]
|
|
||||||
mov r12, QWORD PTR [r12+56]
|
|
||||||
xor r12, QWORD PTR [rdx+24]
|
|
||||||
mov rax, QWORD PTR [rdx+48]
|
|
||||||
xor rax, QWORD PTR [rdx+16]
|
|
||||||
movaps XMMWORD PTR [rsp+48], xmm6
|
|
||||||
movd xmm0, r12
|
|
||||||
movaps XMMWORD PTR [rsp+32], xmm7
|
|
||||||
movaps XMMWORD PTR [rsp+16], xmm8
|
|
||||||
movaps XMMWORD PTR [rsp], xmm9
|
|
||||||
mov r12, QWORD PTR [rdx+88]
|
|
||||||
xor r12, QWORD PTR [rdx+72]
|
|
||||||
movd xmm6, rax
|
|
||||||
mov rax, QWORD PTR [rdx+80]
|
|
||||||
xor rax, QWORD PTR [rdx+64]
|
|
||||||
punpcklqdq xmm6, xmm0
|
|
||||||
and r9d, 2097136
|
|
||||||
movd xmm0, r12
|
|
||||||
movd xmm7, rax
|
|
||||||
punpcklqdq xmm7, xmm0
|
|
||||||
mov r10d, r9d
|
|
||||||
movd xmm9, rsp
|
|
||||||
mov rsp, r8
|
|
||||||
mov r8d, 524288
|
|
||||||
|
|
||||||
mov ebx, [rdx+96]
|
|
||||||
mov esi, [rdx+100]
|
|
||||||
mov edi, [rdx+104]
|
|
||||||
mov ebp, [rdx+108]
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightWOW_template_mainloop):
|
|
||||||
movdqa xmm5, XMMWORD PTR [r9+r11]
|
|
||||||
movd xmm0, r15
|
|
||||||
movd xmm4, rsp
|
|
||||||
punpcklqdq xmm4, xmm0
|
|
||||||
lea rdx, QWORD PTR [r9+r11]
|
|
||||||
|
|
||||||
aesenc xmm5, xmm4
|
|
||||||
movd r10d, xmm5
|
|
||||||
and r10d, 2097136
|
|
||||||
|
|
||||||
mov r12d, r9d
|
|
||||||
mov eax, r9d
|
|
||||||
xor r9d, 48
|
|
||||||
xor r12d, 16
|
|
||||||
xor eax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [r9+r11]
|
|
||||||
movdqu xmm2, XMMWORD PTR [r12+r11]
|
|
||||||
movdqu xmm1, XMMWORD PTR [rax+r11]
|
|
||||||
paddq xmm0, xmm7
|
|
||||||
paddq xmm2, xmm6
|
|
||||||
paddq xmm1, xmm4
|
|
||||||
movdqu XMMWORD PTR [r12+r11], xmm0
|
|
||||||
movd r12, xmm5
|
|
||||||
movdqu XMMWORD PTR [rax+r11], xmm2
|
|
||||||
movdqu XMMWORD PTR [r9+r11], xmm1
|
|
||||||
|
|
||||||
movdqa xmm0, xmm5
|
|
||||||
pxor xmm0, xmm6
|
|
||||||
movdqu XMMWORD PTR [rdx], xmm0
|
|
||||||
|
|
||||||
lea r13d, [ebx+esi]
|
|
||||||
lea edx, [edi+ebp]
|
|
||||||
shl rdx, 32
|
|
||||||
or r13, rdx
|
|
||||||
|
|
||||||
xor r13, QWORD PTR [r10+r11]
|
|
||||||
mov r14, QWORD PTR [r10+r11+8]
|
|
||||||
|
|
||||||
movd eax, xmm6
|
|
||||||
movd edx, xmm7
|
|
||||||
pextrd r9d, xmm7, 2
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_template_part2):
|
|
||||||
mov rax, r13
|
|
||||||
mul r12
|
|
||||||
movd xmm0, rax
|
|
||||||
movd xmm3, rdx
|
|
||||||
punpcklqdq xmm3, xmm0
|
|
||||||
|
|
||||||
mov r9d, r10d
|
|
||||||
mov r12d, r10d
|
|
||||||
xor r9d, 16
|
|
||||||
xor r12d, 32
|
|
||||||
xor r10d, 48
|
|
||||||
movdqa xmm1, XMMWORD PTR [r12+r11]
|
|
||||||
xor rdx, QWORD PTR [r12+r11]
|
|
||||||
xor rax, QWORD PTR [r11+r12+8]
|
|
||||||
movdqa xmm2, XMMWORD PTR [r9+r11]
|
|
||||||
pxor xmm3, xmm2
|
|
||||||
paddq xmm7, XMMWORD PTR [r10+r11]
|
|
||||||
paddq xmm1, xmm4
|
|
||||||
paddq xmm3, xmm6
|
|
||||||
movdqu XMMWORD PTR [r9+r11], xmm7
|
|
||||||
movdqu XMMWORD PTR [r12+r11], xmm3
|
|
||||||
movdqu XMMWORD PTR [r10+r11], xmm1
|
|
||||||
|
|
||||||
movdqa xmm7, xmm6
|
|
||||||
add r15, rax
|
|
||||||
add rsp, rdx
|
|
||||||
xor r10, 48
|
|
||||||
mov QWORD PTR [r10+r11], rsp
|
|
||||||
xor rsp, r13
|
|
||||||
mov r9d, esp
|
|
||||||
mov QWORD PTR [r10+r11+8], r15
|
|
||||||
and r9d, 2097136
|
|
||||||
xor r15, r14
|
|
||||||
movdqa xmm6, xmm5
|
|
||||||
dec r8d
|
|
||||||
jnz FN_PREFIX(CryptonightWOW_template_mainloop)
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_template_part3):
|
|
||||||
movd rsp, xmm9
|
|
||||||
|
|
||||||
mov rbx, QWORD PTR [rsp+136]
|
|
||||||
mov rbp, QWORD PTR [rsp+144]
|
|
||||||
mov rsi, QWORD PTR [rsp+152]
|
|
||||||
movaps xmm6, XMMWORD PTR [rsp+48]
|
|
||||||
movaps xmm7, XMMWORD PTR [rsp+32]
|
|
||||||
movaps xmm8, XMMWORD PTR [rsp+16]
|
|
||||||
movaps xmm9, XMMWORD PTR [rsp]
|
|
||||||
add rsp, 64
|
|
||||||
pop rdi
|
|
||||||
pop r15
|
|
||||||
pop r14
|
|
||||||
pop r13
|
|
||||||
pop r12
|
|
||||||
pop r11
|
|
||||||
pop r10
|
|
||||||
ret 0
|
|
||||||
FN_PREFIX(CryptonightWOW_template_end):
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightWOW_template_double_part1):
|
|
||||||
mov QWORD PTR [rsp+24], rbx
|
|
||||||
push rbp
|
|
||||||
push rsi
|
|
||||||
push rdi
|
|
||||||
push r12
|
|
||||||
push r13
|
|
||||||
push r14
|
|
||||||
push r15
|
|
||||||
sub rsp, 320
|
|
||||||
mov r14, QWORD PTR [rcx+32]
|
|
||||||
mov r8, rcx
|
|
||||||
xor r14, QWORD PTR [rcx]
|
|
||||||
mov r12, QWORD PTR [rcx+40]
|
|
||||||
mov ebx, r14d
|
|
||||||
mov rsi, QWORD PTR [rcx+224]
|
|
||||||
and ebx, 2097136
|
|
||||||
xor r12, QWORD PTR [rcx+8]
|
|
||||||
mov rcx, QWORD PTR [rcx+56]
|
|
||||||
xor rcx, QWORD PTR [r8+24]
|
|
||||||
mov rax, QWORD PTR [r8+48]
|
|
||||||
xor rax, QWORD PTR [r8+16]
|
|
||||||
mov r15, QWORD PTR [rdx+32]
|
|
||||||
xor r15, QWORD PTR [rdx]
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [r8+88]
|
|
||||||
xor rcx, QWORD PTR [r8+72]
|
|
||||||
mov r13, QWORD PTR [rdx+40]
|
|
||||||
mov rdi, QWORD PTR [rdx+224]
|
|
||||||
xor r13, QWORD PTR [rdx+8]
|
|
||||||
movaps XMMWORD PTR [rsp+160], xmm6
|
|
||||||
movaps XMMWORD PTR [rsp+176], xmm7
|
|
||||||
movaps XMMWORD PTR [rsp+192], xmm8
|
|
||||||
movaps XMMWORD PTR [rsp+208], xmm9
|
|
||||||
movaps XMMWORD PTR [rsp+224], xmm10
|
|
||||||
movaps XMMWORD PTR [rsp+240], xmm11
|
|
||||||
movaps XMMWORD PTR [rsp+256], xmm12
|
|
||||||
movaps XMMWORD PTR [rsp+272], xmm13
|
|
||||||
movaps XMMWORD PTR [rsp+288], xmm14
|
|
||||||
movaps XMMWORD PTR [rsp+304], xmm15
|
|
||||||
movd xmm7, rax
|
|
||||||
mov rax, QWORD PTR [r8+80]
|
|
||||||
xor rax, QWORD PTR [r8+64]
|
|
||||||
|
|
||||||
movaps xmm1, XMMWORD PTR [rdx+96]
|
|
||||||
movaps xmm2, XMMWORD PTR [r8+96]
|
|
||||||
movaps XMMWORD PTR [rsp], xmm1
|
|
||||||
movaps XMMWORD PTR [rsp+16], xmm2
|
|
||||||
|
|
||||||
mov r8d, r15d
|
|
||||||
punpcklqdq xmm7, xmm0
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [rdx+56]
|
|
||||||
xor rcx, QWORD PTR [rdx+24]
|
|
||||||
movd xmm9, rax
|
|
||||||
mov QWORD PTR [rsp+128], rsi
|
|
||||||
mov rax, QWORD PTR [rdx+48]
|
|
||||||
xor rax, QWORD PTR [rdx+16]
|
|
||||||
punpcklqdq xmm9, xmm0
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov rcx, QWORD PTR [rdx+88]
|
|
||||||
xor rcx, QWORD PTR [rdx+72]
|
|
||||||
movd xmm8, rax
|
|
||||||
mov QWORD PTR [rsp+136], rdi
|
|
||||||
mov rax, QWORD PTR [rdx+80]
|
|
||||||
xor rax, QWORD PTR [rdx+64]
|
|
||||||
punpcklqdq xmm8, xmm0
|
|
||||||
and r8d, 2097136
|
|
||||||
movd xmm0, rcx
|
|
||||||
mov r11d, 524288
|
|
||||||
movd xmm10, rax
|
|
||||||
punpcklqdq xmm10, xmm0
|
|
||||||
|
|
||||||
movd xmm14, QWORD PTR [rsp+128]
|
|
||||||
movd xmm15, QWORD PTR [rsp+136]
|
|
||||||
|
|
||||||
ALIGN(64)
|
|
||||||
FN_PREFIX(CryptonightWOW_template_double_mainloop):
|
|
||||||
movdqu xmm6, XMMWORD PTR [rbx+rsi]
|
|
||||||
movd xmm0, r12
|
|
||||||
mov ecx, ebx
|
|
||||||
movd xmm3, r14
|
|
||||||
punpcklqdq xmm3, xmm0
|
|
||||||
xor ebx, 16
|
|
||||||
aesenc xmm6, xmm3
|
|
||||||
movd rdx, xmm6
|
|
||||||
movd xmm4, r15
|
|
||||||
movdqu xmm0, XMMWORD PTR [rbx+rsi]
|
|
||||||
xor ebx, 48
|
|
||||||
paddq xmm0, xmm7
|
|
||||||
movdqu xmm1, XMMWORD PTR [rbx+rsi]
|
|
||||||
movdqu XMMWORD PTR [rbx+rsi], xmm0
|
|
||||||
paddq xmm1, xmm3
|
|
||||||
xor ebx, 16
|
|
||||||
mov eax, ebx
|
|
||||||
xor rax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [rbx+rsi]
|
|
||||||
movdqu XMMWORD PTR [rbx+rsi], xmm1
|
|
||||||
paddq xmm0, xmm9
|
|
||||||
movdqu XMMWORD PTR [rax+rsi], xmm0
|
|
||||||
movdqa xmm0, xmm6
|
|
||||||
pxor xmm0, xmm7
|
|
||||||
movdqu XMMWORD PTR [rcx+rsi], xmm0
|
|
||||||
mov esi, edx
|
|
||||||
movdqu xmm5, XMMWORD PTR [r8+rdi]
|
|
||||||
and esi, 2097136
|
|
||||||
mov ecx, r8d
|
|
||||||
movd xmm0, r13
|
|
||||||
punpcklqdq xmm4, xmm0
|
|
||||||
xor r8d, 16
|
|
||||||
aesenc xmm5, xmm4
|
|
||||||
movdqu xmm0, XMMWORD PTR [r8+rdi]
|
|
||||||
xor r8d, 48
|
|
||||||
paddq xmm0, xmm8
|
|
||||||
movdqu xmm1, XMMWORD PTR [r8+rdi]
|
|
||||||
movdqu XMMWORD PTR [r8+rdi], xmm0
|
|
||||||
paddq xmm1, xmm4
|
|
||||||
xor r8d, 16
|
|
||||||
mov eax, r8d
|
|
||||||
xor rax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [r8+rdi]
|
|
||||||
movdqu XMMWORD PTR [r8+rdi], xmm1
|
|
||||||
paddq xmm0, xmm10
|
|
||||||
movdqu XMMWORD PTR [rax+rdi], xmm0
|
|
||||||
movdqa xmm0, xmm5
|
|
||||||
pxor xmm0, xmm8
|
|
||||||
movdqu XMMWORD PTR [rcx+rdi], xmm0
|
|
||||||
movd rdi, xmm5
|
|
||||||
movd rcx, xmm14
|
|
||||||
mov ebp, edi
|
|
||||||
mov r8, QWORD PTR [rcx+rsi]
|
|
||||||
mov r10, QWORD PTR [rcx+rsi+8]
|
|
||||||
lea r9, QWORD PTR [rcx+rsi]
|
|
||||||
xor esi, 16
|
|
||||||
|
|
||||||
movd xmm0, rsp
|
|
||||||
movd xmm1, rsi
|
|
||||||
movd xmm2, rdi
|
|
||||||
movd xmm11, rbp
|
|
||||||
movd xmm12, r15
|
|
||||||
movd xmm13, rdx
|
|
||||||
mov [rsp+104], rcx
|
|
||||||
mov [rsp+112], r9
|
|
||||||
|
|
||||||
mov ebx, DWORD PTR [rsp+16]
|
|
||||||
mov esi, DWORD PTR [rsp+20]
|
|
||||||
mov edi, DWORD PTR [rsp+24]
|
|
||||||
mov ebp, DWORD PTR [rsp+28]
|
|
||||||
|
|
||||||
lea eax, [ebx+esi]
|
|
||||||
lea edx, [edi+ebp]
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
xor r8, rax
|
|
||||||
|
|
||||||
movd esp, xmm3
|
|
||||||
pextrd r15d, xmm3, 2
|
|
||||||
movd eax, xmm7
|
|
||||||
movd edx, xmm9
|
|
||||||
pextrd r9d, xmm9, 2
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_template_double_part2):
|
|
||||||
|
|
||||||
movd rsp, xmm0
|
|
||||||
mov DWORD PTR [rsp+16], ebx
|
|
||||||
mov DWORD PTR [rsp+20], esi
|
|
||||||
mov DWORD PTR [rsp+24], edi
|
|
||||||
mov DWORD PTR [rsp+28], ebp
|
|
||||||
|
|
||||||
movd rsi, xmm1
|
|
||||||
movd rdi, xmm2
|
|
||||||
movd rbp, xmm11
|
|
||||||
movd r15, xmm12
|
|
||||||
movd rdx, xmm13
|
|
||||||
mov rcx, [rsp+104]
|
|
||||||
mov r9, [rsp+112]
|
|
||||||
|
|
||||||
mov rbx, r8
|
|
||||||
mov rax, r8
|
|
||||||
mul rdx
|
|
||||||
and ebp, 2097136
|
|
||||||
mov r8, rax
|
|
||||||
movd xmm1, rdx
|
|
||||||
movd xmm0, r8
|
|
||||||
punpcklqdq xmm1, xmm0
|
|
||||||
pxor xmm1, XMMWORD PTR [rcx+rsi]
|
|
||||||
xor esi, 48
|
|
||||||
paddq xmm1, xmm7
|
|
||||||
movdqu xmm2, XMMWORD PTR [rsi+rcx]
|
|
||||||
xor rdx, QWORD PTR [rsi+rcx]
|
|
||||||
paddq xmm2, xmm3
|
|
||||||
xor r8, QWORD PTR [rsi+rcx+8]
|
|
||||||
movdqu XMMWORD PTR [rsi+rcx], xmm1
|
|
||||||
xor esi, 16
|
|
||||||
mov eax, esi
|
|
||||||
mov rsi, rcx
|
|
||||||
movdqu xmm0, XMMWORD PTR [rax+rcx]
|
|
||||||
movdqu XMMWORD PTR [rax+rcx], xmm2
|
|
||||||
paddq xmm0, xmm9
|
|
||||||
add r12, r8
|
|
||||||
xor rax, 32
|
|
||||||
add r14, rdx
|
|
||||||
movdqa xmm9, xmm7
|
|
||||||
movdqa xmm7, xmm6
|
|
||||||
movdqu XMMWORD PTR [rax+rcx], xmm0
|
|
||||||
mov QWORD PTR [r9+8], r12
|
|
||||||
xor r12, r10
|
|
||||||
mov QWORD PTR [r9], r14
|
|
||||||
movd rcx, xmm15
|
|
||||||
xor r14, rbx
|
|
||||||
mov r10d, ebp
|
|
||||||
mov ebx, r14d
|
|
||||||
xor ebp, 16
|
|
||||||
and ebx, 2097136
|
|
||||||
mov r8, QWORD PTR [r10+rcx]
|
|
||||||
mov r9, QWORD PTR [r10+rcx+8]
|
|
||||||
|
|
||||||
movd xmm0, rsp
|
|
||||||
movd xmm1, rbx
|
|
||||||
movd xmm2, rsi
|
|
||||||
movd xmm11, rdi
|
|
||||||
movd xmm12, rbp
|
|
||||||
movd xmm13, r15
|
|
||||||
mov [rsp+104], rcx
|
|
||||||
mov [rsp+112], r9
|
|
||||||
|
|
||||||
mov ebx, DWORD PTR [rsp]
|
|
||||||
mov esi, DWORD PTR [rsp+4]
|
|
||||||
mov edi, DWORD PTR [rsp+8]
|
|
||||||
mov ebp, DWORD PTR [rsp+12]
|
|
||||||
|
|
||||||
lea eax, [ebx+esi]
|
|
||||||
lea edx, [edi+ebp]
|
|
||||||
shl rdx, 32
|
|
||||||
or rax, rdx
|
|
||||||
|
|
||||||
xor r8, rax
|
|
||||||
movd xmm3, r8
|
|
||||||
|
|
||||||
movd esp, xmm4
|
|
||||||
pextrd r15d, xmm4, 2
|
|
||||||
movd eax, xmm8
|
|
||||||
movd edx, xmm10
|
|
||||||
pextrd r9d, xmm10, 2
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_template_double_part3):
|
|
||||||
|
|
||||||
movd rsp, xmm0
|
|
||||||
mov DWORD PTR [rsp], ebx
|
|
||||||
mov DWORD PTR [rsp+4], esi
|
|
||||||
mov DWORD PTR [rsp+8], edi
|
|
||||||
mov DWORD PTR [rsp+12], ebp
|
|
||||||
|
|
||||||
movd rbx, xmm1
|
|
||||||
movd rsi, xmm2
|
|
||||||
movd rdi, xmm11
|
|
||||||
movd rbp, xmm12
|
|
||||||
movd r15, xmm13
|
|
||||||
mov rcx, [rsp+104]
|
|
||||||
mov r9, [rsp+112]
|
|
||||||
|
|
||||||
mov rax, r8
|
|
||||||
mul rdi
|
|
||||||
movd xmm1, rdx
|
|
||||||
movd xmm0, rax
|
|
||||||
punpcklqdq xmm1, xmm0
|
|
||||||
mov rdi, rcx
|
|
||||||
mov r8, rax
|
|
||||||
pxor xmm1, XMMWORD PTR [rbp+rcx]
|
|
||||||
xor ebp, 48
|
|
||||||
paddq xmm1, xmm8
|
|
||||||
xor r8, QWORD PTR [rbp+rcx+8]
|
|
||||||
xor rdx, QWORD PTR [rbp+rcx]
|
|
||||||
add r13, r8
|
|
||||||
movdqu xmm2, XMMWORD PTR [rbp+rcx]
|
|
||||||
add r15, rdx
|
|
||||||
movdqu XMMWORD PTR [rbp+rcx], xmm1
|
|
||||||
paddq xmm2, xmm4
|
|
||||||
xor ebp, 16
|
|
||||||
mov eax, ebp
|
|
||||||
xor rax, 32
|
|
||||||
movdqu xmm0, XMMWORD PTR [rbp+rcx]
|
|
||||||
movdqu XMMWORD PTR [rbp+rcx], xmm2
|
|
||||||
paddq xmm0, xmm10
|
|
||||||
movdqu XMMWORD PTR [rax+rcx], xmm0
|
|
||||||
movd rax, xmm3
|
|
||||||
movdqa xmm10, xmm8
|
|
||||||
mov QWORD PTR [r10+rcx], r15
|
|
||||||
movdqa xmm8, xmm5
|
|
||||||
xor r15, rax
|
|
||||||
mov QWORD PTR [r10+rcx+8], r13
|
|
||||||
mov r8d, r15d
|
|
||||||
xor r13, r9
|
|
||||||
and r8d, 2097136
|
|
||||||
dec r11d
|
|
||||||
jnz FN_PREFIX(CryptonightWOW_template_double_mainloop)
|
|
||||||
|
|
||||||
FN_PREFIX(CryptonightWOW_template_double_part4):
|
|
||||||
|
|
||||||
mov rbx, QWORD PTR [rsp+400]
|
|
||||||
movaps xmm6, XMMWORD PTR [rsp+160]
|
|
||||||
movaps xmm7, XMMWORD PTR [rsp+176]
|
|
||||||
movaps xmm8, XMMWORD PTR [rsp+192]
|
|
||||||
movaps xmm9, XMMWORD PTR [rsp+208]
|
|
||||||
movaps xmm10, XMMWORD PTR [rsp+224]
|
|
||||||
movaps xmm11, XMMWORD PTR [rsp+240]
|
|
||||||
movaps xmm12, XMMWORD PTR [rsp+256]
|
|
||||||
movaps xmm13, XMMWORD PTR [rsp+272]
|
|
||||||
movaps xmm14, XMMWORD PTR [rsp+288]
|
|
||||||
movaps xmm15, XMMWORD PTR [rsp+304]
|
|
||||||
add rsp, 320
|
|
||||||
pop r15
|
|
||||||
pop r14
|
|
||||||
pop r13
|
|
||||||
pop r12
|
|
||||||
pop rdi
|
|
||||||
pop rsi
|
|
||||||
pop rbp
|
|
||||||
ret 0
|
|
||||||
FN_PREFIX(CryptonightWOW_template_double_end):
|
|
Loading…
Reference in a new issue