Browse Source

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.
rs-1.0
Rich Felker 14 years ago
parent
commit
2be87702b7
  1. 2
      crt/x86_64/Scrt1.s
  2. 2
      crt/x86_64/crt1.s

2
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 */

2
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 */

Loading…
Cancel
Save