From e293302d3d1387c5cfe2ca1aed98aac2a7815b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Mon, 26 Jan 2009 22:57:49 +0000 Subject: [PATCH] * now init SSE on all CPUs, as I noted cr4 wasn't set correctly * this fixes the use of SSE instructions here on a dual core. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29051 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/arch/x86/arch_cpu.cpp | 2 +- src/system/kernel/arch/x86/arch_smp.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/arch/x86/arch_cpu.cpp b/src/system/kernel/arch/x86/arch_cpu.cpp index 8a7070b182..34d7b69b12 100644 --- a/src/system/kernel/arch/x86/arch_cpu.cpp +++ b/src/system/kernel/arch/x86/arch_cpu.cpp @@ -213,7 +213,7 @@ x86_get_mtrr(uint32 index, uint64 *_base, uint64 *_length, uint8 *_type) } -static void +extern "C" void init_sse(void) { if (!x86_check_feature(IA32_FEATURE_SSE, FEATURE_COMMON) diff --git a/src/system/kernel/arch/x86/arch_smp.c b/src/system/kernel/arch/x86/arch_smp.c index 1ae0841bf6..3b9f47cde2 100644 --- a/src/system/kernel/arch/x86/arch_smp.c +++ b/src/system/kernel/arch/x86/arch_smp.c @@ -42,6 +42,7 @@ static uint32 sCPUOSIds[B_MAX_CPU_COUNT]; static uint32 sAPICVersions[B_MAX_CPU_COUNT]; extern bool gUsingIOAPIC; +extern void init_sse(void); static uint32 apic_read(uint32 offset) @@ -196,6 +197,8 @@ arch_smp_per_cpu_init(kernel_args *args, int32 cpu) TRACE(("arch_smp_init_percpu: setting up the apic on cpu %ld\n", cpu)); setup_apic(args, cpu); + init_sse(); + return B_OK; }