remove some junk from x86_64 start files
authorRich Felker <dalias@aerifal.cx>
Thu, 3 May 2012 01:16:02 +0000 (21:16 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 3 May 2012 01:16:02 +0000 (21:16 -0400)
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
crt/x86_64/crt1.s

index d8b71617516e8cacc9e7f06e763bb72dafaa7975..ba34e95ed2120c02ae4c05785a1284cc34f299e7 100644 (file)
@@ -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 */
index 50222f1ce6b7c3ea772c1e9bd848eaeda880bc70..40de3bed2e1903f2a804a3be200229fe1e9aa63c 100644 (file)
@@ -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 */