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"); }