Commented out broken __asm__, added comments where it is broken.
This commit is contained in:
parent
0b5642160c
commit
60729af8a9
12
msdos/dpmi.c
12
msdos/dpmi.c
|
@ -215,11 +215,15 @@ static void DPMI_CallRMCBProc( CONTEXT86 *context, RMCB *rmcb, WORD flag )
|
||||||
if (flag & 1) {
|
if (flag & 1) {
|
||||||
int _clobber;
|
int _clobber;
|
||||||
/* 32-bit DPMI client */
|
/* 32-bit DPMI client */
|
||||||
|
#if HAVE_FIXED_BROKEN_ASSEMBLER_BELOW
|
||||||
__asm__ __volatile__(
|
__asm__ __volatile__(
|
||||||
"pushl %%es\n"
|
"pushl %%es\n"
|
||||||
"pushl %%ds\n"
|
"pushl %%ds\n"
|
||||||
"pushfl\n"
|
"pushfl\n"
|
||||||
"movl %5,%%es\n"
|
"movl %5,%%es\n" /* BAD: we are pushing potential stack
|
||||||
|
* parameters on an already modified
|
||||||
|
* stack
|
||||||
|
*/
|
||||||
"movl %4,%%ds\n"
|
"movl %4,%%ds\n"
|
||||||
"lcall %3\n"
|
"lcall %3\n"
|
||||||
"popl %%ds\n"
|
"popl %%ds\n"
|
||||||
|
@ -230,6 +234,12 @@ static void DPMI_CallRMCBProc( CONTEXT86 *context, RMCB *rmcb, WORD flag )
|
||||||
"g" (ss), "g" (rmcb->regs_sel),
|
"g" (ss), "g" (rmcb->regs_sel),
|
||||||
"S" (ESP_reg(context)), "1" (rmcb->regs_ofs)
|
"S" (ESP_reg(context)), "1" (rmcb->regs_ofs)
|
||||||
: "ecx", "edx", "ebp" );
|
: "ecx", "edx", "ebp" );
|
||||||
|
/* BAD: uses too much registers which is starving the register
|
||||||
|
* alloc stage of gcc, especially in -fPIC.
|
||||||
|
*/
|
||||||
|
#else
|
||||||
|
FIXME("32 bit DPMI client unsupported.\n");
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
/* 16-bit DPMI client */
|
/* 16-bit DPMI client */
|
||||||
CONTEXT86 ctx = *context;
|
CONTEXT86 ctx = *context;
|
||||||
|
|
Loading…
Reference in New Issue