From 99fc7817c631a664fa870b55578132a1387ed825 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sun, 20 Apr 2025 16:55:18 +0300 Subject: [PATCH] Kernel: Cleanup stack alignment assembly --- kernel/arch/i686/Signal.S | 7 +++---- kernel/arch/x86_64/Signal.S | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/kernel/arch/i686/Signal.S b/kernel/arch/i686/Signal.S index 9621c2cfdf..4bf2901548 100644 --- a/kernel/arch/i686/Signal.S +++ b/kernel/arch/i686/Signal.S @@ -16,9 +16,8 @@ signal_trampoline: movl 36(%esp), %eax // align stack to 16 bytes - movl %esp, %ebx - andl $0x0F, %ebx - subl %ebx, %esp + movl %esp, %ebp + andl $-16, %esp subl $12, %esp pushl %edi @@ -26,7 +25,7 @@ signal_trampoline: addl $16, %esp // restore stack - addl %ebx, %esp + movl %ebp, %esp popa leave diff --git a/kernel/arch/x86_64/Signal.S b/kernel/arch/x86_64/Signal.S index e11a7adb98..c3259a686f 100644 --- a/kernel/arch/x86_64/Signal.S +++ b/kernel/arch/x86_64/Signal.S @@ -27,14 +27,13 @@ signal_trampoline: movq 120(%rsp), %rax // align stack to 16 bytes - movq %rsp, %rbx - andq $0x0F, %rbx - subq %rbx, %rsp + movq %rsp, %rbp + andq $-16, %rsp call *%rax // restore stack - addq %rbx, %rsp + movq %rbp, %rsp popq %r15 popq %r14 popq %r13