From 8fd176384c962b236ce02a4723c7aff205205f47 Mon Sep 17 00:00:00 2001 From: David Welch Date: Sat, 8 Sep 2001 20:08:08 +0000 Subject: [PATCH] Hopefully initialize FPU properly svn path=/trunk/; revision=2242 --- reactos/ntoskrnl/ke/i386/fpu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/reactos/ntoskrnl/ke/i386/fpu.c b/reactos/ntoskrnl/ke/i386/fpu.c index 8497222e763..fe7de058989 100644 --- a/reactos/ntoskrnl/ke/i386/fpu.c +++ b/reactos/ntoskrnl/ke/i386/fpu.c @@ -49,12 +49,18 @@ KiCheckFPU(VOID) HardwareMathSupport = 0; + __asm__("movl %%cr0, %0\n\t" : "=a" (cr0)); + /* Set NE and MP. */ + cr0 = cr0 | 22; + __asm__("movl %0, %%cr0\n\t" : : "a" (cr0)); + __asm__("clts\n\t"); __asm__("fninit\n\t"); __asm__("fstsw %0\n\t" : "=a" (status)); if (status != 0) { __asm__("movl %%cr0, %0\n\t" : "=a" (cr0)); + /* Set the EM flag in CR0 so any FPU instructions cause a trap. */ cr0 = cr0 | 0x4; __asm__("movl %0, %%cr0\n\t" : : "a" (cr0));