Kernel: Remove unnecessary stack pointer loading
Any time I started a thread I was loading the stack pointer which is already correctly passed :D
This commit is contained in:
@@ -63,7 +63,7 @@ sys_fork_trampoline:
|
||||
|
||||
call read_ip
|
||||
testl %eax, %eax
|
||||
jz .reload_stack
|
||||
jz .done
|
||||
|
||||
movl %esp, %ebx
|
||||
|
||||
@@ -79,9 +79,3 @@ sys_fork_trampoline:
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
|
||||
.reload_stack:
|
||||
call get_thread_start_sp
|
||||
movl %eax, %esp
|
||||
xorl %eax, %eax
|
||||
jmp .done
|
||||
|
||||
@@ -7,9 +7,6 @@ read_ip:
|
||||
# void start_kernel_thread()
|
||||
.global start_kernel_thread
|
||||
start_kernel_thread:
|
||||
call get_thread_start_sp
|
||||
movl %eax, %esp
|
||||
|
||||
# STACK LAYOUT
|
||||
# on_exit arg
|
||||
# on_exit func
|
||||
@@ -34,9 +31,6 @@ start_kernel_thread:
|
||||
|
||||
.global start_userspace_thread
|
||||
start_userspace_thread:
|
||||
call get_thread_start_sp
|
||||
movl %eax, %esp
|
||||
|
||||
movw $(0x20 | 3), %bx
|
||||
movw %bx, %ds
|
||||
movw %bx, %es
|
||||
|
||||
@@ -33,7 +33,7 @@ sys_fork_trampoline:
|
||||
|
||||
call read_ip
|
||||
testq %rax, %rax
|
||||
je .done
|
||||
jz .done
|
||||
|
||||
movq %rax, %rsi
|
||||
movq %rsp, %rdi
|
||||
|
||||
@@ -7,9 +7,6 @@ read_ip:
|
||||
# void start_kernel_thread()
|
||||
.global start_kernel_thread
|
||||
start_kernel_thread:
|
||||
call get_thread_start_sp
|
||||
movq %rax, %rsp
|
||||
|
||||
# STACK LAYOUT
|
||||
# on_exit arg
|
||||
# on_exit func
|
||||
@@ -27,9 +24,5 @@ start_kernel_thread:
|
||||
|
||||
.global start_userspace_thread
|
||||
start_userspace_thread:
|
||||
call get_thread_start_sp
|
||||
movq %rax, %rsp
|
||||
|
||||
swapgs
|
||||
|
||||
iretq
|
||||
|
||||
@@ -25,11 +25,6 @@ namespace Kernel
|
||||
*(uintptr_t*)rsp = (uintptr_t)value;
|
||||
}
|
||||
|
||||
extern "C" uintptr_t get_thread_start_sp()
|
||||
{
|
||||
return Thread::current().yield_registers().sp;
|
||||
}
|
||||
|
||||
static pid_t s_next_tid = 1;
|
||||
|
||||
alignas(16) static uint8_t s_default_sse_storage[512];
|
||||
|
||||
Reference in New Issue
Block a user