From: Ben Gras Date: Wed, 22 Sep 2010 14:31:06 +0000 (+0000) Subject: enable_fpu_exception() - only write cr0 if bit isn't already on. X-Git-Tag: v3.2.0~820 X-Git-Url: http://zhaoyanbai.com/repos/dnssec-verify.html?a=commitdiff_plain;h=82d576c9ca471b4c4fe33969604a245ec06c845b;p=minix.git enable_fpu_exception() - only write cr0 if bit isn't already on. (NMI profiling results indicate this both is relatively expensive and happens a lot unnecessarily if the fpu is in use.) --- diff --git a/kernel/arch/i386/exception.c b/kernel/arch/i386/exception.c index 86eb54101..7b3e1e378 100644 --- a/kernel/arch/i386/exception.c +++ b/kernel/arch/i386/exception.c @@ -285,7 +285,9 @@ PUBLIC void proc_stacktrace(struct proc *whichproc) PUBLIC void enable_fpu_exception(void) { - write_cr0(read_cr0() | I386_CR0_TS); + u32_t cr0 = read_cr0(); + if(!(cr0 & I386_CR0_TS)) + write_cr0(cr0 | I386_CR0_TS); } PUBLIC void disable_fpu_exception(void)