Browse Source

* ensure that the stack is aligned after haltproc, should resolve #33311

git-svn-id: trunk@38400 -
florian 7 years ago
parent
commit
c6af4e42c0
2 changed files with 2 additions and 0 deletions
  1. 1 0
      rtl/linux/x86_64/cprt0.as
  2. 1 0
      rtl/linux/x86_64/si_c.inc

+ 1 - 0
rtl/linux/x86_64/cprt0.as

@@ -134,6 +134,7 @@ _haltproc:
 	movq    ___fpc_ret_rbp@GOTPCREL(%rip),%rcx
         movq    (%rcx),%rbp
 	movq    ___fpc_ret@GOTPCREL(%rip),%rcx
+        popq    %rdx
         movq    (%rcx),%rdx
         pushq    %rdx
 	ret

+ 1 - 0
rtl/linux/x86_64/si_c.inc

@@ -172,6 +172,7 @@ procedure _FPC_libc_start; assembler; nostackframe; public name '_start';
 procedure _FPC_libc_haltproc(e:longint); assembler; nostackframe; public name '_haltproc';
   asm
     movl      %edi,%eax
+    popq    %rdx                    { keep stack aligned }
     movq fpc_ret(%rip),%rdx         { return to libc }
     movq fpc_ret_rbp(%rip),%rbp
     pushq %rdx