diff options
Diffstat (limited to 'kernel/src/cpu/cpu.c')
-rw-r--r-- | kernel/src/cpu/cpu.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/kernel/src/cpu/cpu.c b/kernel/src/cpu/cpu.c index f78ef26..416a1ad 100644 --- a/kernel/src/cpu/cpu.c +++ b/kernel/src/cpu/cpu.c @@ -2,19 +2,17 @@ #include "print.h" -extern int sse_init (void); -extern int fpu_init (void); +extern uint8_t sse_init (void); +extern uint8_t fpu_init (void); -void init_registers (void) { - if (!sse_init()) { - debugk("Loaded SIMD"); - } else { - errork("SIMD not supported"); - } +uint8_t init_registers (uint8_t reg) { + uint8_t res = 0; - if (!fpu_init()) { - debugk("Loaded FPU"); - } else { - errork("FPU not supported"); - } + if (reg & SSE_REG) + res |= ~sse_init() & SSE_REG; + + if (reg & FPU_REG) + res |= ~fpu_init() & FPU_REG; + + return res; } |