Switch to RIP-relative addressing on x86-64
This commit is contained in:
parent
03d012e86c
commit
6fc88331d6
1 changed files with 11 additions and 9 deletions
20
scrypt-x64.S
20
scrypt-x64.S
|
@ -117,18 +117,18 @@ _SHA256_InitState_4way:
|
||||||
pushq %rdi
|
pushq %rdi
|
||||||
movq %rcx, %rdi
|
movq %rcx, %rdi
|
||||||
#endif
|
#endif
|
||||||
movdqa sha256_4h+0, %xmm0
|
movdqa sha256_4h+0(%rip), %xmm0
|
||||||
movdqa sha256_4h+16, %xmm1
|
movdqa sha256_4h+16(%rip), %xmm1
|
||||||
movdqa sha256_4h+32, %xmm2
|
movdqa sha256_4h+32(%rip), %xmm2
|
||||||
movdqa sha256_4h+48, %xmm3
|
movdqa sha256_4h+48(%rip), %xmm3
|
||||||
movdqu %xmm0, 0(%rdi)
|
movdqu %xmm0, 0(%rdi)
|
||||||
movdqu %xmm1, 16(%rdi)
|
movdqu %xmm1, 16(%rdi)
|
||||||
movdqu %xmm2, 32(%rdi)
|
movdqu %xmm2, 32(%rdi)
|
||||||
movdqu %xmm3, 48(%rdi)
|
movdqu %xmm3, 48(%rdi)
|
||||||
movdqa sha256_4h+64, %xmm0
|
movdqa sha256_4h+64(%rip), %xmm0
|
||||||
movdqa sha256_4h+80, %xmm1
|
movdqa sha256_4h+80(%rip), %xmm1
|
||||||
movdqa sha256_4h+96, %xmm2
|
movdqa sha256_4h+96(%rip), %xmm2
|
||||||
movdqa sha256_4h+112, %xmm3
|
movdqa sha256_4h+112(%rip), %xmm3
|
||||||
movdqu %xmm0, 64(%rdi)
|
movdqu %xmm0, 64(%rdi)
|
||||||
movdqu %xmm1, 80(%rdi)
|
movdqu %xmm1, 80(%rdi)
|
||||||
movdqu %xmm2, 96(%rdi)
|
movdqu %xmm2, 96(%rdi)
|
||||||
|
@ -192,6 +192,7 @@ _SHA256_Transform_4way:
|
||||||
p2bswap_rsi_rsp 14
|
p2bswap_rsi_rsp 14
|
||||||
jmp sha256_transform_4way_extend
|
jmp sha256_transform_4way_extend
|
||||||
|
|
||||||
|
.p2align 5
|
||||||
sha256_transform_4way_block_copy:
|
sha256_transform_4way_block_copy:
|
||||||
movdqu 0*16(%rsi), %xmm0
|
movdqu 0*16(%rsi), %xmm0
|
||||||
movdqu 1*16(%rsi), %xmm1
|
movdqu 1*16(%rsi), %xmm1
|
||||||
|
@ -306,10 +307,11 @@ sha256_transform_4way_extend_loop:
|
||||||
movdqu 96(%rdi), %xmm9
|
movdqu 96(%rdi), %xmm9
|
||||||
movdqu 112(%rdi), %xmm10
|
movdqu 112(%rdi), %xmm10
|
||||||
|
|
||||||
|
leaq sha256_4k(%rip), %rcx
|
||||||
xorq %rax, %rax
|
xorq %rax, %rax
|
||||||
sha256_transform_4way_main_loop:
|
sha256_transform_4way_main_loop:
|
||||||
movdqa (%rsp, %rax), %xmm6
|
movdqa (%rsp, %rax), %xmm6
|
||||||
paddd sha256_4k(%rax), %xmm6
|
paddd (%rcx, %rax), %xmm6
|
||||||
paddd %xmm10, %xmm6
|
paddd %xmm10, %xmm6
|
||||||
|
|
||||||
movdqa %xmm0, %xmm1
|
movdqa %xmm0, %xmm1
|
||||||
|
|
Loading…
Reference in a new issue