mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-06 20:58:33 +01:00
hurd: Generalize init-first.c to support x86_64
Signed-off-by: Sergey Bugaev <bugaevc@gmail.com> Message-Id: <20230223151436.49180-2-bugaevc@gmail.com>
This commit is contained in:
parent
b020355f38
commit
9168964965
1 changed files with 6 additions and 0 deletions
|
@ -225,9 +225,15 @@ _hurd_stack_setup (void)
|
||||||
void doinit (intptr_t *data)
|
void doinit (intptr_t *data)
|
||||||
{
|
{
|
||||||
init ((void **) data);
|
init ((void **) data);
|
||||||
|
# ifdef __x86_64__
|
||||||
|
asm volatile ("movq %0, %%rsp\n" /* Switch to new outermost stack. */
|
||||||
|
"xorq %%rbp, %%rbp\n" /* Clear outermost frame pointer. */
|
||||||
|
"jmp *%1" : : "r" (data), "r" (caller));
|
||||||
|
# else
|
||||||
asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */
|
asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */
|
||||||
"xorl %%ebp, %%ebp\n" /* Clear outermost frame pointer. */
|
"xorl %%ebp, %%ebp\n" /* Clear outermost frame pointer. */
|
||||||
"jmp *%1" : : "r" (data), "r" (caller));
|
"jmp *%1" : : "r" (data), "r" (caller));
|
||||||
|
# endif
|
||||||
__builtin_unreachable ();
|
__builtin_unreachable ();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue