[haiku-commits] r35377 - haiku/trunk/headers/private/kernel/arch/x86

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 1 Feb 2010 09:55:44 +0100 (CET)

Author: bonefish
Date: 2010-02-01 09:55:44 +0100 (Mon, 01 Feb 2010)
New Revision: 35377
Changeset: http://dev.haiku-os.org/changeset/35377/haiku

Modified:
   haiku/trunk/headers/private/kernel/arch/x86/arch_int.h
Log:
Patch by "Grey": Small optimization of arch_int_disable_interrupts_inline()
and arch_int_restore_interrupts_inline().


Modified: haiku/trunk/headers/private/kernel/arch/x86/arch_int.h
===================================================================
--- haiku/trunk/headers/private/kernel/arch/x86/arch_int.h      2010-02-01 
05:36:59 UTC (rev 35376)
+++ haiku/trunk/headers/private/kernel/arch/x86/arch_int.h      2010-02-01 
08:55:44 UTC (rev 35377)
@@ -25,22 +25,15 @@
        asm volatile("pushfl;\n"
                "popl %0;\n"
                "cli" : "=g" (flags));
-       return (flags & 0x200) != 0;
+       return flags ;
 }
 
 
 static inline void
 arch_int_restore_interrupts_inline(int oldState)
 {
-       int flags = oldState ? 0x200 : 0;
-
-       asm volatile("pushfl;\n"
-               "popl   %0;\n"
-               "andl   $0xfffffdff,%0;\n"
-               "orl    %1,%0;\n"
-               "pushl  %0;\n"
-               "popfl\n"
-               : "=&r"(flags) : "r"(flags));
+       if (oldState & 0x200)
+                       asm("sti");
 }
 
 


Other related posts:

  • » [haiku-commits] r35377 - haiku/trunk/headers/private/kernel/arch/x86 - ingo_weinhold