__asm__ fix as suggested by <daniel@mat.utfsm.cl> Daniel Serpell,
removed additional "eax" from clobber list, so egcs-current likes it.
This commit is contained in:
parent
fe14ab6183
commit
2503e7e4c7
13
msdos/dpmi.c
13
msdos/dpmi.c
|
@ -211,23 +211,24 @@ static void DPMI_CallRMCBProc( CONTEXT *context, RMCB *rmcb, WORD flag )
|
||||||
* It is the proc's responsibility to change the return CS:IP in the
|
* It is the proc's responsibility to change the return CS:IP in the
|
||||||
* real-mode call structure. */
|
* real-mode call structure. */
|
||||||
if (flag & 1) {
|
if (flag & 1) {
|
||||||
|
int _clobber;
|
||||||
/* 32-bit DPMI client */
|
/* 32-bit DPMI client */
|
||||||
__asm__ __volatile__("
|
__asm__ __volatile__("
|
||||||
pushl %%es
|
pushl %%es
|
||||||
pushl %%ds
|
pushl %%ds
|
||||||
pushfl
|
pushfl
|
||||||
movl %4,%%es
|
movl %5,%%es
|
||||||
movl %3,%%ds
|
movl %4,%%ds
|
||||||
lcall %2
|
lcall %3
|
||||||
popl %%ds
|
popl %%ds
|
||||||
movl %%es,%0
|
movl %%es,%0
|
||||||
popl %%es
|
popl %%es
|
||||||
"
|
"
|
||||||
: "=g" (es), "=D" (edi)
|
: "=g" (es), "=D" (edi), "=S" (_clobber)
|
||||||
: "m" (rmcb->proc_ofs),
|
: "m" (rmcb->proc_ofs),
|
||||||
"g" (ss), "g" (rmcb->regs_sel),
|
"g" (ss), "g" (rmcb->regs_sel),
|
||||||
"S" (ESP_reg(context)), "D" (rmcb->regs_ofs)
|
"S" (ESP_reg(context)), "1" (rmcb->regs_ofs)
|
||||||
: "eax", "ecx", "edx", "esi", "ebp" );
|
: "ecx", "edx", "ebp" );
|
||||||
} else {
|
} else {
|
||||||
/* 16-bit DPMI client */
|
/* 16-bit DPMI client */
|
||||||
CONTEXT ctx = *context;
|
CONTEXT ctx = *context;
|
||||||
|
|
Loading…
Reference in New Issue