diff --git a/reactos/lib/ntdll/main/i386/dispatch.S b/reactos/lib/ntdll/main/i386/dispatch.S index 92acfb5a30d..b3ba97e9f64 100644 --- a/reactos/lib/ntdll/main/i386/dispatch.S +++ b/reactos/lib/ntdll/main/i386/dispatch.S @@ -15,7 +15,7 @@ #define EXCEPTION_NONCONTINUABLE 1 #define EXCEPTION_UNWINDING 2 #define EXCEPTION_EXIT_UNWIND 4 -#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND) +#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING + EXCEPTION_EXIT_UNWIND) #define STATUS_CALLBACK_POP_STACK 0xC0000423 diff --git a/reactos/lib/rtl/i386/except.s b/reactos/lib/rtl/i386/except.s index 949c92ff0ce..9f1bc163ed2 100644 --- a/reactos/lib/rtl/i386/except.s +++ b/reactos/lib/rtl/i386/except.s @@ -15,7 +15,7 @@ #define EXCEPTION_UNWINDING 2 #define EXCEPTION_EXIT_UNWIND 4 -#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND) +#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING + EXCEPTION_EXIT_UNWIND) #define ExceptionContinueExecution 0 #define ExceptionContinueSearch 1 diff --git a/reactos/ntoskrnl/ke/i386/syscall.S b/reactos/ntoskrnl/ke/i386/syscall.S index 6a1945e1fc5..41d5b89725a 100644 --- a/reactos/ntoskrnl/ke/i386/syscall.S +++ b/reactos/ntoskrnl/ke/i386/syscall.S @@ -499,7 +499,9 @@ FastRet: /* We will be cleaning up the stack ourselves */ pop edx /* New Ring 3 EIP */ add esp, 4 /* Skip Ring 3 DS */ - and dword ptr [esp], ~X86_EFLAGS_IF /* Remove IRQ hack from EFLAGS */ +/* and dword ptr [esp], ~X86_EFLAGS_IF Line below is equivalent to this, + but older binutils versions don't understand ~ */ + and dword ptr [esp], 0xfffffdff /* Remove IRQ hack from EFLAGS */ popf /* Restore old EFLAGS */ pop ecx /* Old Ring 3 SS:ESP */