From 2be87702b79c02b1acf68d6159a4fb399d2c9a57 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 2 May 2012 21:16:02 -0400 Subject: [PATCH 1/1] remove some junk from x86_64 start files looks like nik copied these "extra arguments" from the i386 code. they're not actually arguments there, just 1-byte instructions to make sure the stack is aligned to 16 bytes after all the other arguments are pushed. since each push is 8 bytes on x86_64, they happened to have no effect here, but their presence is confusing and a minor waste of space. --- crt/x86_64/Scrt1.s | 2 -- crt/x86_64/crt1.s | 2 -- 2 files changed, 4 deletions(-) diff --git a/crt/x86_64/Scrt1.s b/crt/x86_64/Scrt1.s index d8b71617..ba34e95e 100644 --- a/crt/x86_64/Scrt1.s +++ b/crt/x86_64/Scrt1.s @@ -9,8 +9,6 @@ _start: pop %rsi /* 2nd arg: argc */ mov %rsp,%rdx /* 3rd arg: argv */ andq $-16,%rsp /* align stack pointer */ - push %rax /* 8th arg: glibc ABI compatible */ - push %rsp /* 7th arg: glibc ABI compatible */ lea _fini(%rip),%r8 /* 5th arg: fini/dtors function */ lea _init(%rip),%rcx /* 4th arg: init/ctors function */ mov main@GOTPCREL(%rip),%rdi /* 1st arg: application entry ip */ diff --git a/crt/x86_64/crt1.s b/crt/x86_64/crt1.s index 50222f1c..40de3bed 100644 --- a/crt/x86_64/crt1.s +++ b/crt/x86_64/crt1.s @@ -9,8 +9,6 @@ _start: pop %rsi /* 2nd arg: argc */ mov %rsp,%rdx /* 3rd arg: argv */ andq $-16,%rsp /* align stack pointer */ - push %rax /* 8th arg: glibc ABI compatible */ - push %rsp /* 7th arg: glibc ABI compatible */ mov $_fini,%r8 /* 5th arg: fini/dtors function */ mov $_init,%rcx /* 4th arg: init/ctors function */ mov $main,%rdi /* 1st arg: application entry ip */ -- 2.20.1