diff --git a/x86_64/startup-x86_64.asm b/x86_64/startup-x86_64.asm index 3d9b865cb084bd66748c7044b5dec6cdd4532702..fa6b9e8406e02c9caf02ce7519f26b64808ba5bc 100644 --- a/x86_64/startup-x86_64.asm +++ b/x86_64/startup-x86_64.asm @@ -1,5 +1,6 @@ trampoline: .ready: dq 0 + .cpu_id: dq 0 .stack_start: dq 0 .stack_end: dq 0 .code: dq 0 @@ -131,11 +132,11 @@ long_mode_ap: mov gs, rax mov ss, rax + mov rdi, [trampoline.cpu_id] + mov rsi, [trampoline.stack_start] + mov rdx, [trampoline.stack_end] - mov rdi, [trampoline.stack_start] - mov rsi, [trampoline.stack_end] - - lea rsp, [rsi - 16] + lea rsp, [rdx - 256] mov qword [trampoline.ready], 1 mov rax, [trampoline.code]