diff --git a/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S b/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S index 145a230f17..24365a7177 100644 --- a/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S +++ b/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S @@ -18,7 +18,11 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x4_avx2_asm) .cfi_startproc - subq $0x300, %rsp # imm = 0x300 + pushq %rbp + .cfi_adjust_cfa_offset 8 + movq %rsp, %rbp + subq $0x300, %rsp + andq $-32, %rsp .cfi_adjust_cfa_offset 0x300 vmovdqu (%rdi), %ymm0 vmovdqu 0xc8(%rdi), %ymm3 @@ -437,8 +441,10 @@ LLkeccak_f1600_x4_avx2: vmovhpd %xmm3, 0x188(%rdi) vmovq %xmm15, 0x250(%rdi) vmovhpd %xmm15, 0x318(%rdi) - addq $0x300, %rsp # imm = 0x300 + movq %rbp, %rsp .cfi_adjust_cfa_offset -0x300 + popq %rbp + .cfi_adjust_cfa_offset -8 retq .cfi_endproc diff --git a/mlkem/src/native/x86_64/src/rej_uniform_avx2_asm.S b/mlkem/src/native/x86_64/src/rej_uniform_avx2_asm.S index 36b471b1dd..8bc7c48f0d 100644 --- a/mlkem/src/native/x86_64/src/rej_uniform_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/rej_uniform_avx2_asm.S @@ -34,7 +34,11 @@ MLK_ASM_FN_SYMBOL(rej_uniform_avx2_asm) .cfi_startproc - subq $0x210, %rsp # imm = 0x210 + pushq %rbp + .cfi_adjust_cfa_offset 8 + movq %rsp, %rbp + subq $0x210, %rsp + andq $-32, %rsp .cfi_adjust_cfa_offset 0x210 xorl %eax, %eax testq %rdx, %rdx @@ -88,8 +92,10 @@ Lrej_uniform_asm_final_copy: rep movsb (%rsi), %es:(%rdi) Lrej_uniform_asm_end: - addq $0x210, %rsp # imm = 0x210 + movq %rbp, %rsp .cfi_adjust_cfa_offset -0x210 + popq %rbp + .cfi_adjust_cfa_offset -8 retq .cfi_endproc