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:
Sergey Bugaev 2023-02-23 18:14:36 +03:00 committed by Samuel Thibault
parent b020355f38
commit 9168964965

View File

@ -225,9 +225,15 @@ _hurd_stack_setup (void)
void doinit (intptr_t *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. */
"xorl %%ebp, %%ebp\n" /* Clear outermost frame pointer. */
"jmp *%1" : : "r" (data), "r" (caller));
# endif
__builtin_unreachable ();
}