#define EXCEPTION_NONCONTINUABLE 1\r
#define EXCEPTION_UNWINDING 2\r
#define EXCEPTION_EXIT_UNWIND 4\r
-#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND)\r
+#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING + EXCEPTION_EXIT_UNWIND)\r
\r
#define STATUS_CALLBACK_POP_STACK 0xC0000423\r
\r
#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
/* 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 */