summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2004-03-21 01:39:01 +0000
committerpeter <peter@FreeBSD.org>2004-03-21 01:39:01 +0000
commit52b4c49f116bb3369b5497e0c01cc38cf3637968 (patch)
treea9f3e52242e4eb1bbda3cab79923175ed207b7cb
parent79f9f60bdab5e05ad5a99d6a6e29cdff16f57d54 (diff)
downloadFreeBSD-src-52b4c49f116bb3369b5497e0c01cc38cf3637968.zip
FreeBSD-src-52b4c49f116bb3369b5497e0c01cc38cf3637968.tar.gz
Adjust stack alignment so that when the 'call xxx' functions are
gathered into the middle of the _init and _fini sections, they get executed with their expected stack alignment.
-rw-r--r--lib/csu/amd64/crti.S2
-rw-r--r--lib/csu/amd64/crtn.S2
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/csu/amd64/crti.S b/lib/csu/amd64/crti.S
index b2e99e4..c46f001 100644
--- a/lib/csu/amd64/crti.S
+++ b/lib/csu/amd64/crti.S
@@ -28,12 +28,14 @@
.globl _init
.type _init,@function
_init:
+ subq $8,%rsp
.section .fini,"ax",@progbits
.align 4
.globl _fini
.type _fini,@function
_fini:
+ subq $8,%rsp
.section .rodata
.ascii "$FreeBSD$\0"
diff --git a/lib/csu/amd64/crtn.S b/lib/csu/amd64/crtn.S
index b2322da..d6d09da 100644
--- a/lib/csu/amd64/crtn.S
+++ b/lib/csu/amd64/crtn.S
@@ -24,9 +24,11 @@
*/
.section .init,"ax",@progbits
+ addq $8,%rsp
ret
.section .fini,"ax",@progbits
+ addq $8,%rsp
ret
.section .rodata
OpenPOWER on IntegriCloud