Commit 8734d5b9 authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Alexandre Julliard

ntdll: Clear alignment flag in exception handlers.

parent b999b69e
......@@ -873,6 +873,15 @@ static int solaris_sigaction( int sig, const struct sigaction *new, struct sigac
typedef void (WINAPI *raise_func)( EXCEPTION_RECORD *rec, CONTEXT *context );
extern void clear_alignment_flag(void);
__ASM_GLOBAL_FUNC( clear_alignment_flag,
"pushfl\n\t"
__ASM_CFI(".cfi_adjust_cfa_offset 4\n\t")
"andl $~0x40000,(%esp)\n\t"
"popfl\n\t"
__ASM_CFI(".cfi_adjust_cfa_offset -4\n\t")
"ret" )
/***********************************************************************
* init_handler
......@@ -884,6 +893,8 @@ static inline void *init_handler( const SIGCONTEXT *sigcontext, WORD *fs, WORD *
{
TEB *teb = get_current_teb();
clear_alignment_flag();
/* get %fs and %gs at time of the fault */
#ifdef FS_sig
*fs = LOWORD(FS_sig(sigcontext));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment