new dlstart stage-2 chaining for x86_64 and x32

This commit is contained in:
Rich Felker 2015-09-17 07:28:44 +00:00
parent c16182680c
commit 12b0b7d8ea
2 changed files with 10 additions and 0 deletions

View File

@ -24,3 +24,8 @@
#define CRTJMP(pc,sp) __asm__ __volatile__( \ #define CRTJMP(pc,sp) __asm__ __volatile__( \
"mov %1,%%esp ; jmp *%0" : : "r"((uint64_t)(uintptr_t)pc), "r"(sp) : "memory" ) "mov %1,%%esp ; jmp *%0" : : "r"((uint64_t)(uintptr_t)pc), "r"(sp) : "memory" )
#define GETFUNCSYM(fp, sym, got) __asm__ ( \
".hidden " #sym "\n" \
" lea " #sym "(%%rip),%0\n" \
: "=r"(*fp) : : "memory" )

View File

@ -13,3 +13,8 @@
#define CRTJMP(pc,sp) __asm__ __volatile__( \ #define CRTJMP(pc,sp) __asm__ __volatile__( \
"mov %1,%%rsp ; jmp *%0" : : "r"(pc), "r"(sp) : "memory" ) "mov %1,%%rsp ; jmp *%0" : : "r"(pc), "r"(sp) : "memory" )
#define GETFUNCSYM(fp, sym, got) __asm__ ( \
".hidden " #sym "\n" \
" lea " #sym "(%%rip),%0\n" \
: "=r"(*fp) : : "memory" )