diff --git a/wolfcrypt/src/chacha_asm.S b/wolfcrypt/src/chacha_asm.S index 9ca854cb4..93b3a3fef 100644 --- a/wolfcrypt/src/chacha_asm.S +++ b/wolfcrypt/src/chacha_asm.S @@ -1,6 +1,6 @@ /* chacha_asm.S */ /* - * Copyright (C) 2006-2023 wolfSSL Inc. + * Copyright (C) 2006-2024 wolfSSL Inc. * * This file is part of wolfSSL. * @@ -536,9 +536,19 @@ chacha_encrypt_avx1: .p2align 4 _chacha_encrypt_avx1: #endif /* __APPLE__ */ + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 subq $0x190, %rsp movq %rsp, %r9 leaq 256(%rsp), %r10 + leaq L_chacha20_avx1_rotl8(%rip), %r12 + leaq L_chacha20_avx1_rotl16(%rip), %r13 + leaq L_chacha20_avx1_add(%rip), %r14 + leaq L_chacha20_avx1_four(%rip), %r15 + addq $15, %r9 + addq $15, %r10 andq $-16, %r9 andq $-16, %r10 movl %ecx, %eax @@ -560,7 +570,7 @@ _chacha_encrypt_avx1: vpshufd $0x00, 52(%rdi), %xmm13 vpshufd $0x00, 56(%rdi), %xmm14 vpshufd $0x00, 60(%rdi), %xmm15 - vpaddd L_chacha20_avx1_add(%rip), %xmm12, %xmm12 + vpaddd (%r14), %xmm12, %xmm12 vmovdqa %xmm0, (%r9) vmovdqa %xmm1, 16(%r9) vmovdqa %xmm2, 32(%r9) @@ -584,22 +594,22 @@ L_chacha20_avx1_loop128: vpaddd %xmm4, %xmm0, %xmm0 vpxor %xmm0, %xmm12, %xmm12 vmovdqa 48(%r10), %xmm11 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm12, %xmm12 + vpshufb (%r13), %xmm12, %xmm12 vpaddd %xmm12, %xmm8, %xmm8 vpxor %xmm8, %xmm4, %xmm4 vpaddd %xmm5, %xmm1, %xmm1 vpxor %xmm1, %xmm13, %xmm13 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm13, %xmm13 + vpshufb (%r13), %xmm13, %xmm13 vpaddd %xmm13, %xmm9, %xmm9 vpxor %xmm9, %xmm5, %xmm5 vpaddd %xmm6, %xmm2, %xmm2 vpxor %xmm2, %xmm14, %xmm14 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm14, %xmm14 + vpshufb (%r13), %xmm14, %xmm14 vpaddd %xmm14, %xmm10, %xmm10 vpxor %xmm10, %xmm6, %xmm6 vpaddd %xmm7, %xmm3, %xmm3 vpxor %xmm3, %xmm15, %xmm15 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm15, %xmm15 + vpshufb (%r13), %xmm15, %xmm15 vpaddd %xmm15, %xmm11, %xmm11 vpxor %xmm11, %xmm7, %xmm7 vmovdqa %xmm11, 48(%r10) @@ -618,22 +628,22 @@ L_chacha20_avx1_loop128: vpaddd %xmm4, %xmm0, %xmm0 vpxor %xmm0, %xmm12, %xmm12 vmovdqa 48(%r10), %xmm11 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm12, %xmm12 + vpshufb (%r12), %xmm12, %xmm12 vpaddd %xmm12, %xmm8, %xmm8 vpxor %xmm8, %xmm4, %xmm4 vpaddd %xmm5, %xmm1, %xmm1 vpxor %xmm1, %xmm13, %xmm13 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm13, %xmm13 + vpshufb (%r12), %xmm13, %xmm13 vpaddd %xmm13, %xmm9, %xmm9 vpxor %xmm9, %xmm5, %xmm5 vpaddd %xmm6, %xmm2, %xmm2 vpxor %xmm2, %xmm14, %xmm14 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm14, %xmm14 + vpshufb (%r12), %xmm14, %xmm14 vpaddd %xmm14, %xmm10, %xmm10 vpxor %xmm10, %xmm6, %xmm6 vpaddd %xmm7, %xmm3, %xmm3 vpxor %xmm3, %xmm15, %xmm15 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm15, %xmm15 + vpshufb (%r12), %xmm15, %xmm15 vpaddd %xmm15, %xmm11, %xmm11 vpxor %xmm11, %xmm7, %xmm7 vmovdqa %xmm11, 48(%r10) @@ -652,22 +662,22 @@ L_chacha20_avx1_loop128: vpaddd %xmm5, %xmm0, %xmm0 vpxor %xmm0, %xmm15, %xmm15 vmovdqa 48(%r10), %xmm11 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm15, %xmm15 + vpshufb (%r13), %xmm15, %xmm15 vpaddd %xmm15, %xmm10, %xmm10 vpxor %xmm10, %xmm5, %xmm5 vpaddd %xmm6, %xmm1, %xmm1 vpxor %xmm1, %xmm12, %xmm12 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm12, %xmm12 + vpshufb (%r13), %xmm12, %xmm12 vpaddd %xmm12, %xmm11, %xmm11 vpxor %xmm11, %xmm6, %xmm6 vpaddd %xmm7, %xmm2, %xmm2 vpxor %xmm2, %xmm13, %xmm13 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm13, %xmm13 + vpshufb (%r13), %xmm13, %xmm13 vpaddd %xmm13, %xmm8, %xmm8 vpxor %xmm8, %xmm7, %xmm7 vpaddd %xmm4, %xmm3, %xmm3 vpxor %xmm3, %xmm14, %xmm14 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm14, %xmm14 + vpshufb (%r13), %xmm14, %xmm14 vpaddd %xmm14, %xmm9, %xmm9 vpxor %xmm9, %xmm4, %xmm4 vmovdqa %xmm11, 48(%r10) @@ -686,22 +696,22 @@ L_chacha20_avx1_loop128: vpaddd %xmm5, %xmm0, %xmm0 vpxor %xmm0, %xmm15, %xmm15 vmovdqa 48(%r10), %xmm11 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm15, %xmm15 + vpshufb (%r12), %xmm15, %xmm15 vpaddd %xmm15, %xmm10, %xmm10 vpxor %xmm10, %xmm5, %xmm5 vpaddd %xmm6, %xmm1, %xmm1 vpxor %xmm1, %xmm12, %xmm12 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm12, %xmm12 + vpshufb (%r12), %xmm12, %xmm12 vpaddd %xmm12, %xmm11, %xmm11 vpxor %xmm11, %xmm6, %xmm6 vpaddd %xmm7, %xmm2, %xmm2 vpxor %xmm2, %xmm13, %xmm13 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm13, %xmm13 + vpshufb (%r12), %xmm13, %xmm13 vpaddd %xmm13, %xmm8, %xmm8 vpxor %xmm8, %xmm7, %xmm7 vpaddd %xmm4, %xmm3, %xmm3 vpxor %xmm3, %xmm14, %xmm14 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm14, %xmm14 + vpshufb (%r12), %xmm14, %xmm14 vpaddd %xmm14, %xmm9, %xmm9 vpxor %xmm9, %xmm4, %xmm4 vmovdqa %xmm11, 48(%r10) @@ -835,7 +845,7 @@ L_chacha20_avx1_loop128: vmovdqa 192(%r9), %xmm12 addq $0x100, %rsi addq $0x100, %rdx - vpaddd L_chacha20_avx1_four(%rip), %xmm12, %xmm12 + vpaddd (%r15), %xmm12, %xmm12 subl $0x100, %ecx vmovdqa %xmm12, 192(%r9) cmpl $0x100, %ecx @@ -876,7 +886,7 @@ L_chacha20_avx1_block_start: L_chacha20_avx1_block_crypt_start: vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3 + vpshufb (%r13), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $20, %xmm1, %xmm4 @@ -884,7 +894,7 @@ L_chacha20_avx1_block_crypt_start: vpxor %xmm4, %xmm1, %xmm1 vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3 + vpshufb (%r12), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $25, %xmm1, %xmm4 @@ -895,7 +905,7 @@ L_chacha20_avx1_block_crypt_start: vpshufd $0x93, %xmm3, %xmm3 vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3 + vpshufb (%r13), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $20, %xmm1, %xmm4 @@ -903,7 +913,7 @@ L_chacha20_avx1_block_crypt_start: vpxor %xmm4, %xmm1, %xmm1 vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3 + vpshufb (%r12), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $25, %xmm1, %xmm4 @@ -952,7 +962,7 @@ L_chacha20_avx1_block_done: L_chacha20_avx1_partial_crypt_start: vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3 + vpshufb (%r13), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $20, %xmm1, %xmm4 @@ -960,7 +970,7 @@ L_chacha20_avx1_partial_crypt_start: vpxor %xmm4, %xmm1, %xmm1 vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3 + vpshufb (%r12), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $25, %xmm1, %xmm4 @@ -971,7 +981,7 @@ L_chacha20_avx1_partial_crypt_start: vpshufd $0x93, %xmm3, %xmm3 vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl16(%rip), %xmm3, %xmm3 + vpshufb (%r13), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $20, %xmm1, %xmm4 @@ -979,7 +989,7 @@ L_chacha20_avx1_partial_crypt_start: vpxor %xmm4, %xmm1, %xmm1 vpaddd %xmm1, %xmm0, %xmm0 vpxor %xmm0, %xmm3, %xmm3 - vpshufb L_chacha20_avx1_rotl8(%rip), %xmm3, %xmm3 + vpshufb (%r12), %xmm3, %xmm3 vpaddd %xmm3, %xmm2, %xmm2 vpxor %xmm2, %xmm1, %xmm1 vpsrld $25, %xmm1, %xmm4 @@ -1023,7 +1033,12 @@ L_chacha20_avx1_partial_end64: subl %r11d, %r8d movl %r8d, 76(%rdi) L_chacha20_avx1_partial_done: + vzeroupper addq $0x190, %rsp + popq %r15 + popq %r14 + popq %r13 + popq %r12 repz retq #ifndef __APPLE__ .size chacha_encrypt_avx1,.-chacha_encrypt_avx1 @@ -1094,9 +1109,18 @@ chacha_encrypt_avx2: .p2align 4 _chacha_encrypt_avx2: #endif /* __APPLE__ */ - subq $0x310, %rsp + pushq %r12 + pushq %r13 + pushq %r14 + subq $0x320, %rsp movq %rsp, %r9 + leaq L_chacha20_avx2_rotl8(%rip), %r11 + leaq L_chacha20_avx2_rotl16(%rip), %r12 + leaq L_chacha20_avx2_add(%rip), %r13 + leaq L_chacha20_avx2_eight(%rip), %r14 leaq 512(%rsp), %r10 + addq $31, %r9 + addq $31, %r10 andq $-32, %r9 andq $-32, %r10 movl %ecx, %eax @@ -1118,7 +1142,7 @@ _chacha_encrypt_avx2: vpbroadcastd 52(%rdi), %ymm13 vpbroadcastd 56(%rdi), %ymm14 vpbroadcastd 60(%rdi), %ymm15 - vpaddd L_chacha20_avx2_add(%rip), %ymm12, %ymm12 + vpaddd (%r13), %ymm12, %ymm12 vmovdqa %ymm0, (%r9) vmovdqa %ymm1, 32(%r9) vmovdqa %ymm2, 64(%r9) @@ -1142,22 +1166,22 @@ L_chacha20_avx2_loop256: vpaddd %ymm4, %ymm0, %ymm0 vpxor %ymm0, %ymm12, %ymm12 vmovdqa 96(%r10), %ymm11 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm12, %ymm12 + vpshufb (%r12), %ymm12, %ymm12 vpaddd %ymm12, %ymm8, %ymm8 vpxor %ymm8, %ymm4, %ymm4 vpaddd %ymm5, %ymm1, %ymm1 vpxor %ymm1, %ymm13, %ymm13 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm13, %ymm13 + vpshufb (%r12), %ymm13, %ymm13 vpaddd %ymm13, %ymm9, %ymm9 vpxor %ymm9, %ymm5, %ymm5 vpaddd %ymm6, %ymm2, %ymm2 vpxor %ymm2, %ymm14, %ymm14 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm14, %ymm14 + vpshufb (%r12), %ymm14, %ymm14 vpaddd %ymm14, %ymm10, %ymm10 vpxor %ymm10, %ymm6, %ymm6 vpaddd %ymm7, %ymm3, %ymm3 vpxor %ymm3, %ymm15, %ymm15 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm15, %ymm15 + vpshufb (%r12), %ymm15, %ymm15 vpaddd %ymm15, %ymm11, %ymm11 vpxor %ymm11, %ymm7, %ymm7 vmovdqa %ymm11, 96(%r10) @@ -1176,22 +1200,22 @@ L_chacha20_avx2_loop256: vpaddd %ymm4, %ymm0, %ymm0 vpxor %ymm0, %ymm12, %ymm12 vmovdqa 96(%r10), %ymm11 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm12, %ymm12 + vpshufb (%r11), %ymm12, %ymm12 vpaddd %ymm12, %ymm8, %ymm8 vpxor %ymm8, %ymm4, %ymm4 vpaddd %ymm5, %ymm1, %ymm1 vpxor %ymm1, %ymm13, %ymm13 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm13, %ymm13 + vpshufb (%r11), %ymm13, %ymm13 vpaddd %ymm13, %ymm9, %ymm9 vpxor %ymm9, %ymm5, %ymm5 vpaddd %ymm6, %ymm2, %ymm2 vpxor %ymm2, %ymm14, %ymm14 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm14, %ymm14 + vpshufb (%r11), %ymm14, %ymm14 vpaddd %ymm14, %ymm10, %ymm10 vpxor %ymm10, %ymm6, %ymm6 vpaddd %ymm7, %ymm3, %ymm3 vpxor %ymm3, %ymm15, %ymm15 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm15, %ymm15 + vpshufb (%r11), %ymm15, %ymm15 vpaddd %ymm15, %ymm11, %ymm11 vpxor %ymm11, %ymm7, %ymm7 vmovdqa %ymm11, 96(%r10) @@ -1210,22 +1234,22 @@ L_chacha20_avx2_loop256: vpaddd %ymm5, %ymm0, %ymm0 vpxor %ymm0, %ymm15, %ymm15 vmovdqa 96(%r10), %ymm11 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm15, %ymm15 + vpshufb (%r12), %ymm15, %ymm15 vpaddd %ymm15, %ymm10, %ymm10 vpxor %ymm10, %ymm5, %ymm5 vpaddd %ymm6, %ymm1, %ymm1 vpxor %ymm1, %ymm12, %ymm12 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm12, %ymm12 + vpshufb (%r12), %ymm12, %ymm12 vpaddd %ymm12, %ymm11, %ymm11 vpxor %ymm11, %ymm6, %ymm6 vpaddd %ymm7, %ymm2, %ymm2 vpxor %ymm2, %ymm13, %ymm13 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm13, %ymm13 + vpshufb (%r12), %ymm13, %ymm13 vpaddd %ymm13, %ymm8, %ymm8 vpxor %ymm8, %ymm7, %ymm7 vpaddd %ymm4, %ymm3, %ymm3 vpxor %ymm3, %ymm14, %ymm14 - vpshufb L_chacha20_avx2_rotl16(%rip), %ymm14, %ymm14 + vpshufb (%r12), %ymm14, %ymm14 vpaddd %ymm14, %ymm9, %ymm9 vpxor %ymm9, %ymm4, %ymm4 vmovdqa %ymm11, 96(%r10) @@ -1244,22 +1268,22 @@ L_chacha20_avx2_loop256: vpaddd %ymm5, %ymm0, %ymm0 vpxor %ymm0, %ymm15, %ymm15 vmovdqa 96(%r10), %ymm11 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm15, %ymm15 + vpshufb (%r11), %ymm15, %ymm15 vpaddd %ymm15, %ymm10, %ymm10 vpxor %ymm10, %ymm5, %ymm5 vpaddd %ymm6, %ymm1, %ymm1 vpxor %ymm1, %ymm12, %ymm12 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm12, %ymm12 + vpshufb (%r11), %ymm12, %ymm12 vpaddd %ymm12, %ymm11, %ymm11 vpxor %ymm11, %ymm6, %ymm6 vpaddd %ymm7, %ymm2, %ymm2 vpxor %ymm2, %ymm13, %ymm13 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm13, %ymm13 + vpshufb (%r11), %ymm13, %ymm13 vpaddd %ymm13, %ymm8, %ymm8 vpxor %ymm8, %ymm7, %ymm7 vpaddd %ymm4, %ymm3, %ymm3 vpxor %ymm3, %ymm14, %ymm14 - vpshufb L_chacha20_avx2_rotl8(%rip), %ymm14, %ymm14 + vpshufb (%r11), %ymm14, %ymm14 vpaddd %ymm14, %ymm9, %ymm9 vpxor %ymm9, %ymm4, %ymm4 vmovdqa %ymm11, 96(%r10) @@ -1409,7 +1433,7 @@ L_chacha20_avx2_loop256: vmovdqa 384(%r9), %ymm12 addq $0x200, %rsi addq $0x200, %rdx - vpaddd L_chacha20_avx2_eight(%rip), %ymm12, %ymm12 + vpaddd (%r14), %ymm12, %ymm12 subl $0x200, %ecx vmovdqa %ymm12, 384(%r9) cmpl $0x200, %ecx @@ -1440,7 +1464,11 @@ L_chacha20_avx2_end256: #else callq _chacha_encrypt_avx1 #endif /* __APPLE__ */ - addq $0x310, %rsp + vzeroupper + addq $0x320, %rsp + popq %r14 + popq %r13 + popq %r12 repz retq #ifndef __APPLE__ .size chacha_encrypt_avx2,.-chacha_encrypt_avx2 diff --git a/wolfcrypt/src/poly1305_asm.S b/wolfcrypt/src/poly1305_asm.S index ba1d29449..5eaa6d36f 100644 --- a/wolfcrypt/src/poly1305_asm.S +++ b/wolfcrypt/src/poly1305_asm.S @@ -1,6 +1,6 @@ /* poly1305_asm.S */ /* - * Copyright (C) 2006-2023 wolfSSL Inc. + * Copyright (C) 2006-2024 wolfSSL Inc. * * This file is part of wolfSSL. * @@ -699,7 +699,11 @@ _poly1305_blocks_avx2: #endif /* __APPLE__ */ pushq %r12 pushq %rbx + pushq %r13 + pushq %r14 subq $0x140, %rsp + leaq L_poly1305_avx2_blocks_mask(%rip), %r13 + leaq L_poly1305_avx2_blocks_hibit(%rip), %r14 movq %rsp, %rcx andq $-32, %rcx addq $32, %rcx @@ -720,11 +724,11 @@ _poly1305_blocks_avx2: vpunpckhdq %ymm15, %ymm1, %ymm1 vpunpckldq %ymm15, %ymm3, %ymm2 vpunpckhdq %ymm15, %ymm3, %ymm3 - vmovdqu L_poly1305_avx2_blocks_hibit(%rip), %ymm4 + vmovdqu (%r14), %ymm4 vpsllq $6, %ymm1, %ymm1 vpsllq $12, %ymm2, %ymm2 vpsllq $18, %ymm3, %ymm3 - vmovdqu L_poly1305_avx2_blocks_mask(%rip), %ymm14 + vmovdqu (%r13), %ymm14 # Reduce, in place, the message data vpsrlq $26, %ymm0, %ymm10 vpsrlq $26, %ymm3, %ymm11 @@ -811,7 +815,7 @@ L_poly1305_avx2_blocks_mul_5: vmovdqa %ymm7, 64(%rcx) vmovdqa %ymm8, 96(%rcx) vmovdqa %ymm9, 128(%rcx) - vmovdqu L_poly1305_avx2_blocks_mask(%rip), %ymm14 + vmovdqu (%r13), %ymm14 # If not finished then loop over data cmpb $0x01, 616(%rdi) jne L_poly1305_avx2_blocks_start @@ -922,7 +926,7 @@ L_poly1305_avx2_blocks_start: vpunpckhdq %ymm15, %ymm6, %ymm6 vpunpckldq %ymm15, %ymm8, %ymm7 vpunpckhdq %ymm15, %ymm8, %ymm8 - vmovdqu L_poly1305_avx2_blocks_hibit(%rip), %ymm9 + vmovdqu (%r14), %ymm9 vpsllq $6, %ymm6, %ymm6 vpsllq $12, %ymm7, %ymm7 vpsllq $18, %ymm8, %ymm8 @@ -1038,7 +1042,10 @@ L_poly1305_avx2_blocks_end_calc: movq %rcx, 40(%rdi) L_poly1305_avx2_blocks_complete: movb $0x01, 617(%rdi) + vzeroupper addq $0x140, %rsp + popq %r14 + popq %r13 popq %rbx popq %r12 repz retq @@ -1118,6 +1125,7 @@ L_poly1305_avx2_final_cmp_copy: vmovdqu %ymm0, 320(%rdi) movq $0x00, 608(%rdi) movw $0x00, 616(%rdi) + vzeroupper repz retq #ifndef __APPLE__ .size poly1305_final_avx2,.-poly1305_final_avx2 diff --git a/wolfcrypt/src/sha256_asm.S b/wolfcrypt/src/sha256_asm.S index 3f7f6cf24..2f2bfde57 100644 --- a/wolfcrypt/src/sha256_asm.S +++ b/wolfcrypt/src/sha256_asm.S @@ -1,6 +1,6 @@ /* sha256_asm.S */ /* - * Copyright (C) 2006-2023 wolfSSL Inc. + * Copyright (C) 2006-2024 wolfSSL Inc. * * This file is part of wolfSSL. * @@ -92,6 +92,7 @@ Transform_Sha256_SSE2_Sha: .p2align 4 _Transform_Sha256_SSE2_Sha: #endif /* __APPLE__ */ + leaq L_sse2_sha256_sha_k(%rip), %rdx movdqa L_sse2_sha256_shuf_mask(%rip), %xmm10 movq (%rdi), %xmm1 movq 8(%rdi), %xmm2 @@ -108,14 +109,14 @@ _Transform_Sha256_SSE2_Sha: movdqa %xmm2, %xmm9 # Rounds: 0-3 movdqa %xmm3, %xmm0 - paddd 0+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd (%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 # Rounds: 4-7 pshufb %xmm10, %xmm4 movdqa %xmm4, %xmm0 - paddd 16+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 16(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256msg1 %xmm4, %xmm3 @@ -123,7 +124,7 @@ _Transform_Sha256_SSE2_Sha: # Rounds: 8-11 pshufb %xmm10, %xmm5 movdqa %xmm5, %xmm0 - paddd 32+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 32(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256msg1 %xmm5, %xmm4 @@ -131,7 +132,7 @@ _Transform_Sha256_SSE2_Sha: # Rounds: 12-15 pshufb %xmm10, %xmm6 movdqa %xmm6, %xmm0 - paddd 48+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 48(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm6, %xmm7 palignr $4, %xmm5, %xmm7 @@ -142,7 +143,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 16-19 movdqa %xmm3, %xmm0 - paddd 64+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 64(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm3, %xmm7 palignr $4, %xmm6, %xmm7 @@ -153,7 +154,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 20-23 movdqa %xmm4, %xmm0 - paddd 80+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 80(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm4, %xmm7 palignr $4, %xmm3, %xmm7 @@ -164,7 +165,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 24-27 movdqa %xmm5, %xmm0 - paddd 96+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 96(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm5, %xmm7 palignr $4, %xmm4, %xmm7 @@ -175,7 +176,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 28-31 movdqa %xmm6, %xmm0 - paddd 112+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 112(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm6, %xmm7 palignr $4, %xmm5, %xmm7 @@ -186,7 +187,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 32-35 movdqa %xmm3, %xmm0 - paddd 128+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 128(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm3, %xmm7 palignr $4, %xmm6, %xmm7 @@ -197,7 +198,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 36-39 movdqa %xmm4, %xmm0 - paddd 144+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 144(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm4, %xmm7 palignr $4, %xmm3, %xmm7 @@ -208,7 +209,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 40-43 movdqa %xmm5, %xmm0 - paddd 160+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 160(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm5, %xmm7 palignr $4, %xmm4, %xmm7 @@ -219,7 +220,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 44-47 movdqa %xmm6, %xmm0 - paddd 176+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 176(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm6, %xmm7 palignr $4, %xmm5, %xmm7 @@ -230,7 +231,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 48-51 movdqa %xmm3, %xmm0 - paddd 192+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 192(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm3, %xmm7 palignr $4, %xmm6, %xmm7 @@ -241,7 +242,7 @@ _Transform_Sha256_SSE2_Sha: sha256rnds2 %xmm2, %xmm1 # Rounds: 52-63 movdqa %xmm4, %xmm0 - paddd 208+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 208(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm4, %xmm7 palignr $4, %xmm3, %xmm7 @@ -250,7 +251,7 @@ _Transform_Sha256_SSE2_Sha: pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 movdqa %xmm5, %xmm0 - paddd 224+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 224(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm5, %xmm7 palignr $4, %xmm4, %xmm7 @@ -259,7 +260,7 @@ _Transform_Sha256_SSE2_Sha: pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 movdqa %xmm6, %xmm0 - paddd 240+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 240(%rdx), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 @@ -289,6 +290,7 @@ Transform_Sha256_SSE2_Sha_Len: .p2align 4 _Transform_Sha256_SSE2_Sha_Len: #endif /* __APPLE__ */ + leaq L_sse2_sha256_sha_k(%rip), %rax movdqa L_sse2_sha256_shuf_mask(%rip), %xmm10 movq (%rdi), %xmm1 movq 8(%rdi), %xmm2 @@ -307,14 +309,14 @@ L_sha256_sha_len_sse2_start: movdqa %xmm2, %xmm9 # Rounds: 0-3 movdqa %xmm3, %xmm0 - paddd 0+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd (%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 # Rounds: 4-7 pshufb %xmm10, %xmm4 movdqa %xmm4, %xmm0 - paddd 16+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 16(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256msg1 %xmm4, %xmm3 @@ -322,7 +324,7 @@ L_sha256_sha_len_sse2_start: # Rounds: 8-11 pshufb %xmm10, %xmm5 movdqa %xmm5, %xmm0 - paddd 32+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 32(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256msg1 %xmm5, %xmm4 @@ -330,7 +332,7 @@ L_sha256_sha_len_sse2_start: # Rounds: 12-15 pshufb %xmm10, %xmm6 movdqa %xmm6, %xmm0 - paddd 48+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 48(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm6, %xmm7 palignr $4, %xmm5, %xmm7 @@ -341,7 +343,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 16-19 movdqa %xmm3, %xmm0 - paddd 64+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 64(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm3, %xmm7 palignr $4, %xmm6, %xmm7 @@ -352,7 +354,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 20-23 movdqa %xmm4, %xmm0 - paddd 80+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 80(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm4, %xmm7 palignr $4, %xmm3, %xmm7 @@ -363,7 +365,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 24-27 movdqa %xmm5, %xmm0 - paddd 96+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 96(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm5, %xmm7 palignr $4, %xmm4, %xmm7 @@ -374,7 +376,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 28-31 movdqa %xmm6, %xmm0 - paddd 112+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 112(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm6, %xmm7 palignr $4, %xmm5, %xmm7 @@ -385,7 +387,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 32-35 movdqa %xmm3, %xmm0 - paddd 128+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 128(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm3, %xmm7 palignr $4, %xmm6, %xmm7 @@ -396,7 +398,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 36-39 movdqa %xmm4, %xmm0 - paddd 144+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 144(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm4, %xmm7 palignr $4, %xmm3, %xmm7 @@ -407,7 +409,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 40-43 movdqa %xmm5, %xmm0 - paddd 160+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 160(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm5, %xmm7 palignr $4, %xmm4, %xmm7 @@ -418,7 +420,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 44-47 movdqa %xmm6, %xmm0 - paddd 176+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 176(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm6, %xmm7 palignr $4, %xmm5, %xmm7 @@ -429,7 +431,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 48-51 movdqa %xmm3, %xmm0 - paddd 192+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 192(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm3, %xmm7 palignr $4, %xmm6, %xmm7 @@ -440,7 +442,7 @@ L_sha256_sha_len_sse2_start: sha256rnds2 %xmm2, %xmm1 # Rounds: 52-63 movdqa %xmm4, %xmm0 - paddd 208+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 208(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm4, %xmm7 palignr $4, %xmm3, %xmm7 @@ -449,7 +451,7 @@ L_sha256_sha_len_sse2_start: pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 movdqa %xmm5, %xmm0 - paddd 224+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 224(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 movdqa %xmm5, %xmm7 palignr $4, %xmm4, %xmm7 @@ -458,7 +460,7 @@ L_sha256_sha_len_sse2_start: pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 movdqa %xmm6, %xmm0 - paddd 240+L_sse2_sha256_sha_k(%rip), %xmm0 + paddd 240(%rax), %xmm0 sha256rnds2 %xmm1, %xmm2 pshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 @@ -555,7 +557,9 @@ _Transform_Sha256_AVX1: pushq %r13 pushq %r14 pushq %r15 + pushq %rbp subq $0x40, %rsp + leaq L_avx1_sha256_k(%rip), %rbp vmovdqa L_avx1_sha256_flip_mask(%rip), %xmm13 vmovdqa L_avx1_sha256_shuf_00BA(%rip), %xmm11 vmovdqa L_avx1_sha256_shuf_DC00(%rip), %xmm12 @@ -580,12 +584,12 @@ _Transform_Sha256_AVX1: movl %r12d, %edx xorl %r10d, %ebx # set_w_k_xfer_4: 0 - vpaddd 0+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 16+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd (%rbp), %xmm0, %xmm4 + vpaddd 16(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 32+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 48+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 32(%rbp), %xmm2, %xmm6 + vpaddd 48(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -1213,12 +1217,12 @@ _Transform_Sha256_AVX1: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 4 - vpaddd 64+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 80+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 64(%rbp), %xmm0, %xmm4 + vpaddd 80(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 96+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 112+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 96(%rbp), %xmm2, %xmm6 + vpaddd 112(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -1846,12 +1850,12 @@ _Transform_Sha256_AVX1: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 8 - vpaddd 128+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 144+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 128(%rbp), %xmm0, %xmm4 + vpaddd 144(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 160+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 176+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 160(%rbp), %xmm2, %xmm6 + vpaddd 176(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -2479,12 +2483,12 @@ _Transform_Sha256_AVX1: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 12 - vpaddd 192+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 208+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 192(%rbp), %xmm0, %xmm4 + vpaddd 208(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 224+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 240+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 224(%rbp), %xmm2, %xmm6 + vpaddd 240(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # rnd_all_4: 0-3 @@ -2918,6 +2922,7 @@ _Transform_Sha256_AVX1: xorq %rax, %rax vzeroupper addq $0x40, %rsp + popq %rbp popq %r15 popq %r14 popq %r13 @@ -2946,7 +2951,9 @@ _Transform_Sha256_AVX1_Len: pushq %r15 pushq %rbp movq %rdx, %rbp - subq $0x40, %rsp + subq $0x44, %rsp + movl %ebp, 64(%rsp) + leaq L_avx1_sha256_k(%rip), %rbp vmovdqa L_avx1_sha256_flip_mask(%rip), %xmm13 vmovdqa L_avx1_sha256_shuf_00BA(%rip), %xmm11 vmovdqa L_avx1_sha256_shuf_DC00(%rip), %xmm12 @@ -2973,12 +2980,12 @@ L_sha256_len_avx1_start: movl %r12d, %edx xorl %r10d, %ebx # set_w_k_xfer_4: 0 - vpaddd 0+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 16+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd (%rbp), %xmm0, %xmm4 + vpaddd 16(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 32+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 48+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 32(%rbp), %xmm2, %xmm6 + vpaddd 48(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -3606,12 +3613,12 @@ L_sha256_len_avx1_start: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 4 - vpaddd 64+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 80+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 64(%rbp), %xmm0, %xmm4 + vpaddd 80(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 96+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 112+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 96(%rbp), %xmm2, %xmm6 + vpaddd 112(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -4239,12 +4246,12 @@ L_sha256_len_avx1_start: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 8 - vpaddd 128+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 144+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 128(%rbp), %xmm0, %xmm4 + vpaddd 144(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 160+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 176+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 160(%rbp), %xmm2, %xmm6 + vpaddd 176(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -4872,12 +4879,12 @@ L_sha256_len_avx1_start: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 12 - vpaddd 192+L_avx1_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 208+L_avx1_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 192(%rbp), %xmm0, %xmm4 + vpaddd 208(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 224+L_avx1_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 240+L_avx1_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 224(%rbp), %xmm2, %xmm6 + vpaddd 240(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # rnd_all_4: 0-3 @@ -5309,7 +5316,7 @@ L_sha256_len_avx1_start: addl 24(%rdi), %r14d addl 28(%rdi), %r15d addq $0x40, %rsi - subl $0x40, %ebp + subl $0x40, 64(%rsp) movl %r8d, (%rdi) movl %r9d, 4(%rdi) movl %r10d, 8(%rdi) @@ -5321,7 +5328,7 @@ L_sha256_len_avx1_start: jnz L_sha256_len_avx1_start xorq %rax, %rax vzeroupper - addq $0x40, %rsp + addq $0x44, %rsp popq %rbp popq %r15 popq %r14 @@ -5407,7 +5414,9 @@ _Transform_Sha256_AVX1_RORX: pushq %r13 pushq %r14 pushq %r15 + pushq %rbp subq $0x40, %rsp + leaq L_avx1_rorx_sha256_k(%rip), %rbp vmovdqa L_avx1_rorx_sha256_flip_mask(%rip), %xmm13 vmovdqa L_avx1_rorx_sha256_shuf_00BA(%rip), %xmm11 vmovdqa L_avx1_rorx_sha256_shuf_DC00(%rip), %xmm12 @@ -5429,12 +5438,12 @@ _Transform_Sha256_AVX1_RORX: movl 24(%rdi), %r14d movl 28(%rdi), %r15d # set_w_k_xfer_4: 0 - vpaddd 0+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 16+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd (%rbp), %xmm0, %xmm4 + vpaddd 16(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 32+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 48+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 32(%rbp), %xmm2, %xmm6 + vpaddd 48(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) movl %r9d, %ebx @@ -6061,12 +6070,12 @@ _Transform_Sha256_AVX1_RORX: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 4 - vpaddd 64+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 80+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 64(%rbp), %xmm0, %xmm4 + vpaddd 80(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 96+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 112+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 96(%rbp), %xmm2, %xmm6 + vpaddd 112(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -6690,12 +6699,12 @@ _Transform_Sha256_AVX1_RORX: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 8 - vpaddd 128+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 144+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 128(%rbp), %xmm0, %xmm4 + vpaddd 144(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 160+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 176+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 160(%rbp), %xmm2, %xmm6 + vpaddd 176(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -7319,12 +7328,12 @@ _Transform_Sha256_AVX1_RORX: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 12 - vpaddd 192+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 208+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 192(%rbp), %xmm0, %xmm4 + vpaddd 208(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 224+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 240+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 224(%rbp), %xmm2, %xmm6 + vpaddd 240(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) xorl %eax, %eax @@ -7728,6 +7737,7 @@ _Transform_Sha256_AVX1_RORX: xorq %rax, %rax vzeroupper addq $0x40, %rsp + popq %rbp popq %r15 popq %r14 popq %r13 @@ -7756,7 +7766,9 @@ _Transform_Sha256_AVX1_RORX_Len: pushq %r15 pushq %rbp movq %rdx, %rbp - subq $0x40, %rsp + subq $0x44, %rsp + movl %ebp, 64(%rsp) + leaq L_avx1_rorx_sha256_k(%rip), %rbp vmovdqa L_avx1_rorx_sha256_flip_mask(%rip), %xmm13 vmovdqa L_avx1_rorx_sha256_shuf_00BA(%rip), %xmm11 vmovdqa L_avx1_rorx_sha256_shuf_DC00(%rip), %xmm12 @@ -7780,12 +7792,12 @@ L_sha256_len_avx1_len_rorx_start: vpshufb %xmm13, %xmm2, %xmm2 vpshufb %xmm13, %xmm3, %xmm3 # set_w_k_xfer_4: 0 - vpaddd 0+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 16+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd (%rbp), %xmm0, %xmm4 + vpaddd 16(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 32+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 48+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 32(%rbp), %xmm2, %xmm6 + vpaddd 48(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) movl %r9d, %ebx @@ -8412,12 +8424,12 @@ L_sha256_len_avx1_len_rorx_start: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 4 - vpaddd 64+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 80+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 64(%rbp), %xmm0, %xmm4 + vpaddd 80(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 96+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 112+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 96(%rbp), %xmm2, %xmm6 + vpaddd 112(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -9041,12 +9053,12 @@ L_sha256_len_avx1_len_rorx_start: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 8 - vpaddd 128+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 144+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 128(%rbp), %xmm0, %xmm4 + vpaddd 144(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 160+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 176+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 160(%rbp), %xmm2, %xmm6 + vpaddd 176(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) # msg_sched: 0-3 @@ -9670,12 +9682,12 @@ L_sha256_len_avx1_len_rorx_start: vpaddd %xmm4, %xmm9, %xmm3 # msg_sched done: 12-15 # set_w_k_xfer_4: 12 - vpaddd 192+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4 - vpaddd 208+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5 + vpaddd 192(%rbp), %xmm0, %xmm4 + vpaddd 208(%rbp), %xmm1, %xmm5 vmovdqu %xmm4, (%rsp) vmovdqu %xmm5, 16(%rsp) - vpaddd 224+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6 - vpaddd 240+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7 + vpaddd 224(%rbp), %xmm2, %xmm6 + vpaddd 240(%rbp), %xmm3, %xmm7 vmovdqu %xmm6, 32(%rsp) vmovdqu %xmm7, 48(%rsp) xorl %eax, %eax @@ -10078,7 +10090,7 @@ L_sha256_len_avx1_len_rorx_start: addl 24(%rdi), %r14d addl 28(%rdi), %r15d addq $0x40, %rsi - subl $0x40, %ebp + subl $0x40, 64(%rsp) movl %r8d, (%rdi) movl %r9d, 4(%rdi) movl %r10d, 8(%rdi) @@ -10090,7 +10102,7 @@ L_sha256_len_avx1_len_rorx_start: jnz L_sha256_len_avx1_len_rorx_start xorq %rax, %rax vzeroupper - addq $0x40, %rsp + addq $0x44, %rsp popq %rbp popq %r15 popq %r14 @@ -10147,6 +10159,7 @@ Transform_Sha256_AVX1_Sha: .p2align 4 _Transform_Sha256_AVX1_Sha: #endif /* __APPLE__ */ + leaq L_avx1_sha256_sha_k(%rip), %rdx vmovdqa L_avx1_sha256_shuf_mask(%rip), %xmm10 vmovq (%rdi), %xmm1 vmovq 8(%rdi), %xmm2 @@ -10162,27 +10175,27 @@ _Transform_Sha256_AVX1_Sha: vmovdqa %xmm1, %xmm8 vmovdqa %xmm2, %xmm9 # Rounds: 0-3 - vpaddd 0+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd (%rdx), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 # Rounds: 4-7 vpshufb %xmm10, %xmm4, %xmm4 - vpaddd 16+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 16(%rdx), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256msg1 %xmm4, %xmm3 sha256rnds2 %xmm2, %xmm1 # Rounds: 8-11 vpshufb %xmm10, %xmm5, %xmm5 - vpaddd 32+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 32(%rdx), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256msg1 %xmm5, %xmm4 sha256rnds2 %xmm2, %xmm1 # Rounds: 12-15 vpshufb %xmm10, %xmm6, %xmm6 - vpaddd 48+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 48(%rdx), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm5, %xmm6, %xmm7 vpaddd %xmm7, %xmm3, %xmm3 @@ -10191,7 +10204,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm6, %xmm5 sha256rnds2 %xmm2, %xmm1 # Rounds: 16-19 - vpaddd 64+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd 64(%rdx), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm6, %xmm3, %xmm7 vpaddd %xmm7, %xmm4, %xmm4 @@ -10200,7 +10213,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm3, %xmm6 sha256rnds2 %xmm2, %xmm1 # Rounds: 20-23 - vpaddd 80+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 80(%rdx), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm3, %xmm4, %xmm7 vpaddd %xmm7, %xmm5, %xmm5 @@ -10209,7 +10222,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm4, %xmm3 sha256rnds2 %xmm2, %xmm1 # Rounds: 24-27 - vpaddd 96+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 96(%rdx), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm4, %xmm5, %xmm7 vpaddd %xmm7, %xmm6, %xmm6 @@ -10218,7 +10231,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm5, %xmm4 sha256rnds2 %xmm2, %xmm1 # Rounds: 28-31 - vpaddd 112+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 112(%rdx), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm5, %xmm6, %xmm7 vpaddd %xmm7, %xmm3, %xmm3 @@ -10227,7 +10240,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm6, %xmm5 sha256rnds2 %xmm2, %xmm1 # Rounds: 32-35 - vpaddd 128+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd 128(%rdx), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm6, %xmm3, %xmm7 vpaddd %xmm7, %xmm4, %xmm4 @@ -10236,7 +10249,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm3, %xmm6 sha256rnds2 %xmm2, %xmm1 # Rounds: 36-39 - vpaddd 144+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 144(%rdx), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm3, %xmm4, %xmm7 vpaddd %xmm7, %xmm5, %xmm5 @@ -10245,7 +10258,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm4, %xmm3 sha256rnds2 %xmm2, %xmm1 # Rounds: 40-43 - vpaddd 160+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 160(%rdx), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm4, %xmm5, %xmm7 vpaddd %xmm7, %xmm6, %xmm6 @@ -10254,7 +10267,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm5, %xmm4 sha256rnds2 %xmm2, %xmm1 # Rounds: 44-47 - vpaddd 176+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 176(%rdx), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm5, %xmm6, %xmm7 vpaddd %xmm7, %xmm3, %xmm3 @@ -10263,7 +10276,7 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm6, %xmm5 sha256rnds2 %xmm2, %xmm1 # Rounds: 48-51 - vpaddd 192+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd 192(%rdx), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm6, %xmm3, %xmm7 vpaddd %xmm7, %xmm4, %xmm4 @@ -10272,21 +10285,21 @@ _Transform_Sha256_AVX1_Sha: sha256msg1 %xmm3, %xmm6 sha256rnds2 %xmm2, %xmm1 # Rounds: 52-63 - vpaddd 208+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 208(%rdx), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm3, %xmm4, %xmm7 vpaddd %xmm7, %xmm5, %xmm5 sha256msg2 %xmm4, %xmm5 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 - vpaddd 224+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 224(%rdx), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm4, %xmm5, %xmm7 vpaddd %xmm7, %xmm6, %xmm6 sha256msg2 %xmm5, %xmm6 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 - vpaddd 240+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 240(%rdx), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 @@ -10316,6 +10329,7 @@ Transform_Sha256_AVX1_Sha_Len: .p2align 4 _Transform_Sha256_AVX1_Sha_Len: #endif /* __APPLE__ */ + leaq L_avx1_sha256_sha_k(%rip), %rax vmovdqa L_avx1_sha256_shuf_mask(%rip), %xmm10 vmovq (%rdi), %xmm1 vmovq 8(%rdi), %xmm2 @@ -10333,27 +10347,27 @@ L_sha256_sha_len_avx1_start: vmovdqa %xmm1, %xmm8 vmovdqa %xmm2, %xmm9 # Rounds: 0-3 - vpaddd 0+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd (%rax), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 # Rounds: 4-7 vpshufb %xmm10, %xmm4, %xmm4 - vpaddd 16+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 16(%rax), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256msg1 %xmm4, %xmm3 sha256rnds2 %xmm2, %xmm1 # Rounds: 8-11 vpshufb %xmm10, %xmm5, %xmm5 - vpaddd 32+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 32(%rax), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256msg1 %xmm5, %xmm4 sha256rnds2 %xmm2, %xmm1 # Rounds: 12-15 vpshufb %xmm10, %xmm6, %xmm6 - vpaddd 48+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 48(%rax), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm5, %xmm6, %xmm7 vpaddd %xmm7, %xmm3, %xmm3 @@ -10362,7 +10376,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm6, %xmm5 sha256rnds2 %xmm2, %xmm1 # Rounds: 16-19 - vpaddd 64+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd 64(%rax), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm6, %xmm3, %xmm7 vpaddd %xmm7, %xmm4, %xmm4 @@ -10371,7 +10385,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm3, %xmm6 sha256rnds2 %xmm2, %xmm1 # Rounds: 20-23 - vpaddd 80+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 80(%rax), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm3, %xmm4, %xmm7 vpaddd %xmm7, %xmm5, %xmm5 @@ -10380,7 +10394,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm4, %xmm3 sha256rnds2 %xmm2, %xmm1 # Rounds: 24-27 - vpaddd 96+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 96(%rax), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm4, %xmm5, %xmm7 vpaddd %xmm7, %xmm6, %xmm6 @@ -10389,7 +10403,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm5, %xmm4 sha256rnds2 %xmm2, %xmm1 # Rounds: 28-31 - vpaddd 112+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 112(%rax), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm5, %xmm6, %xmm7 vpaddd %xmm7, %xmm3, %xmm3 @@ -10398,7 +10412,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm6, %xmm5 sha256rnds2 %xmm2, %xmm1 # Rounds: 32-35 - vpaddd 128+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd 128(%rax), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm6, %xmm3, %xmm7 vpaddd %xmm7, %xmm4, %xmm4 @@ -10407,7 +10421,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm3, %xmm6 sha256rnds2 %xmm2, %xmm1 # Rounds: 36-39 - vpaddd 144+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 144(%rax), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm3, %xmm4, %xmm7 vpaddd %xmm7, %xmm5, %xmm5 @@ -10416,7 +10430,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm4, %xmm3 sha256rnds2 %xmm2, %xmm1 # Rounds: 40-43 - vpaddd 160+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 160(%rax), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm4, %xmm5, %xmm7 vpaddd %xmm7, %xmm6, %xmm6 @@ -10425,7 +10439,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm5, %xmm4 sha256rnds2 %xmm2, %xmm1 # Rounds: 44-47 - vpaddd 176+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 176(%rax), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm5, %xmm6, %xmm7 vpaddd %xmm7, %xmm3, %xmm3 @@ -10434,7 +10448,7 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm6, %xmm5 sha256rnds2 %xmm2, %xmm1 # Rounds: 48-51 - vpaddd 192+L_avx1_sha256_sha_k(%rip), %xmm3, %xmm0 + vpaddd 192(%rax), %xmm3, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm6, %xmm3, %xmm7 vpaddd %xmm7, %xmm4, %xmm4 @@ -10443,21 +10457,21 @@ L_sha256_sha_len_avx1_start: sha256msg1 %xmm3, %xmm6 sha256rnds2 %xmm2, %xmm1 # Rounds: 52-63 - vpaddd 208+L_avx1_sha256_sha_k(%rip), %xmm4, %xmm0 + vpaddd 208(%rax), %xmm4, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm3, %xmm4, %xmm7 vpaddd %xmm7, %xmm5, %xmm5 sha256msg2 %xmm4, %xmm5 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 - vpaddd 224+L_avx1_sha256_sha_k(%rip), %xmm5, %xmm0 + vpaddd 224(%rax), %xmm5, %xmm0 sha256rnds2 %xmm1, %xmm2 vpalignr $4, %xmm4, %xmm5, %xmm7 vpaddd %xmm7, %xmm6, %xmm6 sha256msg2 %xmm5, %xmm6 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 - vpaddd 240+L_avx1_sha256_sha_k(%rip), %xmm6, %xmm0 + vpaddd 240(%rax), %xmm6, %xmm0 sha256rnds2 %xmm1, %xmm2 vpshufd $14, %xmm0, %xmm0 sha256rnds2 %xmm2, %xmm1 @@ -10574,7 +10588,9 @@ _Transform_Sha256_AVX2: pushq %r13 pushq %r14 pushq %r15 + pushq %rbp subq $0x200, %rsp + leaq L_avx2_sha256_k(%rip), %rbp vmovdqa L_avx2_sha256_flip_mask(%rip), %xmm13 vmovdqa L_avx2_sha256_shuf_00BA(%rip), %ymm11 vmovdqa L_avx2_sha256_shuf_DC00(%rip), %ymm12 @@ -10599,12 +10615,12 @@ _Transform_Sha256_AVX2: movl %r12d, %edx xorl %r10d, %ebx # set_w_k_xfer_4: 0 - vpaddd 0+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 32+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd (%rbp), %ymm0, %ymm4 + vpaddd 32(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, (%rsp) vmovdqu %ymm5, 32(%rsp) - vpaddd 64+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 96+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 64(%rbp), %ymm2, %ymm4 + vpaddd 96(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 64(%rsp) vmovdqu %ymm5, 96(%rsp) # msg_sched: 0-3 @@ -11232,12 +11248,12 @@ _Transform_Sha256_AVX2: vpaddd %ymm4, %ymm9, %ymm3 # msg_sched done: 24-27 # set_w_k_xfer_4: 4 - vpaddd 128+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 160+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd 128(%rbp), %ymm0, %ymm4 + vpaddd 160(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, 128(%rsp) vmovdqu %ymm5, 160(%rsp) - vpaddd 192+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 224+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 192(%rbp), %ymm2, %ymm4 + vpaddd 224(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 192(%rsp) vmovdqu %ymm5, 224(%rsp) # msg_sched: 32-35 @@ -11865,12 +11881,12 @@ _Transform_Sha256_AVX2: vpaddd %ymm4, %ymm9, %ymm3 # msg_sched done: 56-59 # set_w_k_xfer_4: 8 - vpaddd 256+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 288+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd 256(%rbp), %ymm0, %ymm4 + vpaddd 288(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, 256(%rsp) vmovdqu %ymm5, 288(%rsp) - vpaddd 320+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 352+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 320(%rbp), %ymm2, %ymm4 + vpaddd 352(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 320(%rsp) vmovdqu %ymm5, 352(%rsp) # msg_sched: 64-67 @@ -12498,12 +12514,12 @@ _Transform_Sha256_AVX2: vpaddd %ymm4, %ymm9, %ymm3 # msg_sched done: 88-91 # set_w_k_xfer_4: 12 - vpaddd 384+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 416+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd 384(%rbp), %ymm0, %ymm4 + vpaddd 416(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, 384(%rsp) vmovdqu %ymm5, 416(%rsp) - vpaddd 448+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 480+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 448(%rbp), %ymm2, %ymm4 + vpaddd 480(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 448(%rsp) vmovdqu %ymm5, 480(%rsp) # rnd_all_4: 24-27 @@ -12937,6 +12953,7 @@ _Transform_Sha256_AVX2: xorq %rax, %rax vzeroupper addq $0x200, %rsp + popq %rbp popq %r15 popq %r14 popq %r13 @@ -12965,8 +12982,9 @@ _Transform_Sha256_AVX2_Len: pushq %r15 pushq %rbp movq %rdx, %rbp - subq $0x200, %rsp + subq $0x204, %rsp testb $0x40, %bpl + movl %ebp, 512(%rsp) je L_sha256_len_avx2_block vmovdqu (%rsi), %ymm0 vmovdqu 32(%rsi), %ymm1 @@ -12978,9 +12996,10 @@ _Transform_Sha256_AVX2_Len: call _Transform_Sha256_AVX2 #endif /* __APPLE__ */ addq $0x40, %rsi - subl $0x40, %ebp + subl $0x40, 512(%rsp) jz L_sha256_len_avx2_done L_sha256_len_avx2_block: + leaq L_avx2_sha256_k(%rip), %rbp vmovdqa L_avx2_sha256_flip_mask(%rip), %ymm13 vmovdqa L_avx2_sha256_shuf_00BA(%rip), %ymm11 vmovdqa L_avx2_sha256_shuf_DC00(%rip), %ymm12 @@ -13015,12 +13034,12 @@ L_sha256_len_avx2_start: movl %r12d, %edx xorl %r10d, %ebx # set_w_k_xfer_4: 0 - vpaddd 0+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 32+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd (%rbp), %ymm0, %ymm4 + vpaddd 32(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, (%rsp) vmovdqu %ymm5, 32(%rsp) - vpaddd 64+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 96+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 64(%rbp), %ymm2, %ymm4 + vpaddd 96(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 64(%rsp) vmovdqu %ymm5, 96(%rsp) # msg_sched: 0-3 @@ -13648,12 +13667,12 @@ L_sha256_len_avx2_start: vpaddd %ymm4, %ymm9, %ymm3 # msg_sched done: 24-27 # set_w_k_xfer_4: 4 - vpaddd 128+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 160+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd 128(%rbp), %ymm0, %ymm4 + vpaddd 160(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, 128(%rsp) vmovdqu %ymm5, 160(%rsp) - vpaddd 192+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 224+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 192(%rbp), %ymm2, %ymm4 + vpaddd 224(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 192(%rsp) vmovdqu %ymm5, 224(%rsp) # msg_sched: 32-35 @@ -14281,12 +14300,12 @@ L_sha256_len_avx2_start: vpaddd %ymm4, %ymm9, %ymm3 # msg_sched done: 56-59 # set_w_k_xfer_4: 8 - vpaddd 256+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 288+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd 256(%rbp), %ymm0, %ymm4 + vpaddd 288(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, 256(%rsp) vmovdqu %ymm5, 288(%rsp) - vpaddd 320+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 352+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 320(%rbp), %ymm2, %ymm4 + vpaddd 352(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 320(%rsp) vmovdqu %ymm5, 352(%rsp) # msg_sched: 64-67 @@ -14914,12 +14933,12 @@ L_sha256_len_avx2_start: vpaddd %ymm4, %ymm9, %ymm3 # msg_sched done: 88-91 # set_w_k_xfer_4: 12 - vpaddd 384+L_avx2_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 416+L_avx2_sha256_k(%rip), %ymm1, %ymm5 + vpaddd 384(%rbp), %ymm0, %ymm4 + vpaddd 416(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, 384(%rsp) vmovdqu %ymm5, 416(%rsp) - vpaddd 448+L_avx2_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 480+L_avx2_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 448(%rbp), %ymm2, %ymm4 + vpaddd 480(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 448(%rsp) vmovdqu %ymm5, 480(%rsp) # rnd_all_4: 24-27 @@ -17050,7 +17069,7 @@ L_sha256_len_avx2_start: addl 24(%rdi), %r14d addl 28(%rdi), %r15d addq $0x80, %rsi - subl $0x80, %ebp + subl $0x80, 512(%rsp) movl %r8d, (%rdi) movl %r9d, 4(%rdi) movl %r10d, 8(%rdi) @@ -17063,7 +17082,7 @@ L_sha256_len_avx2_start: L_sha256_len_avx2_done: xorq %rax, %rax vzeroupper - addq $0x200, %rsp + addq $0x204, %rsp popq %rbp popq %r15 popq %r14 @@ -17168,7 +17187,9 @@ _Transform_Sha256_AVX2_RORX: pushq %r13 pushq %r14 pushq %r15 + pushq %rbp subq $0x200, %rsp + leaq L_avx2_rorx_sha256_k(%rip), %rbp vmovdqa L_avx2_rorx_sha256_flip_mask(%rip), %xmm13 vmovdqa L_avx2_rorx_sha256_shuf_00BA(%rip), %ymm11 vmovdqa L_avx2_rorx_sha256_shuf_DC00(%rip), %ymm12 @@ -17177,16 +17198,16 @@ _Transform_Sha256_AVX2_RORX: vmovdqu 16(%rsi), %xmm1 vpshufb %xmm13, %xmm0, %xmm0 vpshufb %xmm13, %xmm1, %xmm1 - vpaddd 0+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 32+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm5 + vpaddd (%rbp), %ymm0, %ymm4 + vpaddd 32(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, (%rsp) vmovdqu %ymm5, 32(%rsp) vmovdqu 32(%rsi), %xmm2 vmovdqu 48(%rsi), %xmm3 vpshufb %xmm13, %xmm2, %xmm2 vpshufb %xmm13, %xmm3, %xmm3 - vpaddd 64+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 96+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 64(%rbp), %ymm2, %ymm4 + vpaddd 96(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 64(%rsp) vmovdqu %ymm5, 96(%rsp) movl (%rdi), %r8d @@ -17349,7 +17370,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 128+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 + vpaddd 128(%rbp), %ymm0, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -17508,7 +17529,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 160+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4 + vpaddd 160(%rbp), %ymm1, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -17667,7 +17688,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 192+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 + vpaddd 192(%rbp), %ymm2, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -17826,7 +17847,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 224+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4 + vpaddd 224(%rbp), %ymm3, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -17985,7 +18006,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 256+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 + vpaddd 256(%rbp), %ymm0, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -18144,7 +18165,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 288+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4 + vpaddd 288(%rbp), %ymm1, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -18303,7 +18324,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 320+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 + vpaddd 320(%rbp), %ymm2, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -18462,7 +18483,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 352+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4 + vpaddd 352(%rbp), %ymm3, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -18621,7 +18642,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 384+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 + vpaddd 384(%rbp), %ymm0, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -18780,7 +18801,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 416+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4 + vpaddd 416(%rbp), %ymm1, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -18939,7 +18960,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 448+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 + vpaddd 448(%rbp), %ymm2, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -19098,7 +19119,7 @@ _Transform_Sha256_AVX2_RORX: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 480+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4 + vpaddd 480(%rbp), %ymm3, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -19506,6 +19527,7 @@ _Transform_Sha256_AVX2_RORX: xorq %rax, %rax vzeroupper addq $0x200, %rsp + popq %rbp popq %r15 popq %r14 popq %r13 @@ -19534,8 +19556,9 @@ _Transform_Sha256_AVX2_RORX_Len: pushq %r15 pushq %rbp movq %rdx, %rbp - subq $0x200, %rsp + subq $0x204, %rsp testb $0x40, %bpl + movl %ebp, 512(%rsp) je L_sha256_len_avx2_rorx_block vmovdqu (%rsi), %ymm0 vmovdqu 32(%rsi), %ymm1 @@ -19547,9 +19570,10 @@ _Transform_Sha256_AVX2_RORX_Len: call _Transform_Sha256_AVX2_RORX #endif /* __APPLE__ */ addq $0x40, %rsi - subl $0x40, %ebp + subl $0x40, 512(%rsp) jz L_sha256_len_avx2_rorx_done L_sha256_len_avx2_rorx_block: + leaq L_avx2_rorx_sha256_k(%rip), %rbp vmovdqa L_avx2_rorx_sha256_flip_mask(%rip), %ymm13 vmovdqa L_avx2_rorx_sha256_shuf_00BA(%rip), %ymm11 vmovdqa L_avx2_rorx_sha256_shuf_DC00(%rip), %ymm12 @@ -19570,8 +19594,8 @@ L_sha256_len_avx2_rorx_start: vinserti128 $0x01, 80(%rsi), %ymm1, %ymm1 vpshufb %ymm13, %ymm0, %ymm0 vpshufb %ymm13, %ymm1, %ymm1 - vpaddd 0+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 - vpaddd 32+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm5 + vpaddd (%rbp), %ymm0, %ymm4 + vpaddd 32(%rbp), %ymm1, %ymm5 vmovdqu %ymm4, (%rsp) vmovdqu %ymm5, 32(%rsp) vmovdqu 32(%rsi), %xmm2 @@ -19580,8 +19604,8 @@ L_sha256_len_avx2_rorx_start: vinserti128 $0x01, 112(%rsi), %ymm3, %ymm3 vpshufb %ymm13, %ymm2, %ymm2 vpshufb %ymm13, %ymm3, %ymm3 - vpaddd 64+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 - vpaddd 96+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm5 + vpaddd 64(%rbp), %ymm2, %ymm4 + vpaddd 96(%rbp), %ymm3, %ymm5 vmovdqu %ymm4, 64(%rsp) vmovdqu %ymm5, 96(%rsp) movl %r9d, %ebx @@ -19736,7 +19760,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 128+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 + vpaddd 128(%rbp), %ymm0, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -19895,7 +19919,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 160+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4 + vpaddd 160(%rbp), %ymm1, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -20054,7 +20078,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 192+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 + vpaddd 192(%rbp), %ymm2, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -20213,7 +20237,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 224+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4 + vpaddd 224(%rbp), %ymm3, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -20372,7 +20396,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 256+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 + vpaddd 256(%rbp), %ymm0, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -20531,7 +20555,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 288+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4 + vpaddd 288(%rbp), %ymm1, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -20690,7 +20714,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 320+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 + vpaddd 320(%rbp), %ymm2, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -20849,7 +20873,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 352+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4 + vpaddd 352(%rbp), %ymm3, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -21008,7 +21032,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 384+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4 + vpaddd 384(%rbp), %ymm0, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -21167,7 +21191,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 416+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4 + vpaddd 416(%rbp), %ymm1, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -21326,7 +21350,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r12d, %r8d movl %r14d, %ebx - vpaddd 448+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4 + vpaddd 448(%rbp), %ymm2, %ymm4 # rnd_1: 6 - 6 xorl %r13d, %ebx addl %edx, %r12d @@ -21485,7 +21509,7 @@ L_sha256_len_avx2_rorx_start: xorl %ecx, %edx addl %r8d, %r12d movl %r10d, %ebx - vpaddd 480+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4 + vpaddd 480(%rbp), %ymm3, %ymm4 # rnd_1: 6 - 6 xorl %r9d, %ebx addl %edx, %r8d @@ -23448,7 +23472,7 @@ L_sha256_len_avx2_rorx_start: addl 20(%rdi), %r13d addl 24(%rdi), %r14d addl 28(%rdi), %r15d - subl $0x80, %ebp + subl $0x80, 512(%rsp) movl %r8d, (%rdi) movl %r9d, 4(%rdi) movl %r10d, 8(%rdi) @@ -23461,7 +23485,7 @@ L_sha256_len_avx2_rorx_start: L_sha256_len_avx2_rorx_done: xorq %rax, %rax vzeroupper - addq $0x200, %rsp + addq $0x204, %rsp popq %rbp popq %r15 popq %r14