Zebediah Figura <z.figura12(a)gmail.com> writes:
@@ -1500,11 +1500,6 @@ static void save_context( struct xcontext *xcontext, const ucontext_t *sigcontex context->SegFs = FS_sig(sigcontext); context->SegGs = GS_sig(sigcontext); context->EFlags = EFL_sig(sigcontext); -#ifdef DS_sig - context->SegDs = DS_sig(sigcontext); -#else - __asm__("movw %%ds,%0" : "=m" (context->SegDs)); -#endif #ifdef ES_sig context->SegEs = ES_sig(sigcontext); #else @@ -1515,6 +1510,9 @@ static void save_context( struct xcontext *xcontext, const ucontext_t *sigcontex #else __asm__("movw %%ss,%0" : "=m" (context->SegSs)); #endif + /* Legends of Runeterra depends on having SegDs == SegSs in an exception + * handler. */ + context->SegDs = context->SegSs;
Is there a reason you are not fixing %es too while you are at it? -- Alexandre Julliard julliard(a)winehq.org