h3/minihwc (hwcShareContextData): copy over gcc inline asm support from h5.

This commit is contained in:
sezero
2018-08-11 00:32:02 +03:00
parent 898013970a
commit 3b522046d6

View File

@@ -4282,28 +4282,34 @@ hwcShareContextData(hwcBoardInfo *bInfo, FxU32 **data)
/* Now for the NASTY stuff: */ /* Now for the NASTY stuff: */
#ifdef __GNUC__
__asm __volatile (" xor %%eax, %%eax; mov %%cs, %%ax; mov %%eax, %0":"=g"(ohWell));
#else
__asm mov eax, 0; __asm mov eax, 0;
__asm mov ax, cs; __asm mov ax, cs;
__asm mov ohWell, eax; __asm mov ohWell, eax;
#endif
ctxReq.optData.contextDwordNTReq.codeSegment = ohWell; ctxReq.optData.contextDwordNTReq.codeSegment = ohWell;
#ifdef __GNUC__
__asm __volatile (" xor %%eax, %%eax; mov %%ds, %%ax; mov %%eax, %0":"=g"(ohWell));
#else
__asm mov eax, 0; __asm mov eax, 0;
__asm mov ax, ds; __asm mov ax, ds;
__asm mov ohWell, eax; __asm mov ohWell, eax;
#endif
ctxReq.optData.contextDwordNTReq.dataSegment = ohWell; ctxReq.optData.contextDwordNTReq.dataSegment = ohWell;
/* oh, yeah */ /* oh, yeah */
} }
GDBG_INFO(80, FN_NAME ": Calling ExtEscape(HWCEXT_CONTEXT_DWORD_NT)\n"); GDBG_INFO(80, FN_NAME ": Calling ExtEscape(HWCEXT_CONTEXT_DWORD_NT)\n");
ExtEscape((HDC) bInfo->hdc, bInfo->hwcEscape, sizeof(ctxReq), (void *) &ctxReq, ExtEscape((HDC) bInfo->hdc, bInfo->hwcEscape, sizeof(ctxReq), (void *) &ctxReq,
sizeof(ctxRes), (void *) &ctxRes); sizeof(ctxRes), (void *) &ctxRes);
*data = (FxU32 *) ctxRes.optData.contextDwordNTRes.dwordOffset; *data = (FxU32 *) ctxRes.optData.contextDwordNTRes.dwordOffset;
} else { } else {