Kernel: Initialize the CPU to allow SSE on startup.

I still need to add support for SSE to the context switching code, but now
at least one process can use it.
This commit is contained in:
Andreas Kling 2019-03-27 13:40:00 +01:00
parent 5808322556
commit 750d79dcaf
Notes: sideshowbarker 2024-07-19 14:55:42 +09:00
3 changed files with 16 additions and 0 deletions

View File

@ -493,3 +493,16 @@ void __assertion_failed(const char* msg, const char* file, unsigned line, const
asm volatile("hlt");
for (;;);
}
void sse_init()
{
asm volatile(
"mov %cr0, %eax\n"
"andl $0xfffffffb, %eax\n"
"orl $0x2, %eax\n"
"mov %eax, %cr0\n"
"mov %cr4, %eax\n"
"orl $0x600, %eax\n"
"mov %eax, %cr4\n"
);
}

View File

@ -61,6 +61,7 @@ class IRQHandler;
void gdt_init();
void idt_init();
void sse_init();
void register_interrupt_handler(byte number, void (*f)());
void register_user_callable_interrupt_handler(byte number, void (*f)());
void register_irq_handler(byte number, IRQHandler&);

View File

@ -140,6 +140,8 @@ VFS* vfs;
{
cli();
sse_init();
kmalloc_init();
init_ksyms();