Avoid clobbering %ebx.
diff --git a/msdos/dpmi.c b/msdos/dpmi.c
index d7a5d67..0b5927c 100644
--- a/msdos/dpmi.c
+++ b/msdos/dpmi.c
@@ -216,6 +216,7 @@
int _clobber;
__asm__ __volatile__(
"pushl %%ebp\n"
+ "pushl %%ebx\n"
"pushl %%es\n"
"pushl %%ds\n"
"pushfl\n"
@@ -225,12 +226,12 @@
"popl %%ds\n"
"mov %%es,%0\n"
"popl %%es\n"
+ "popl %%ebx\n"
"popl %%ebp\n"
: "=d" (es), "=D" (edi), "=S" (_clobber), "=a" (_clobber), "=c" (_clobber)
: "0" (ss), "2" (ESP_reg(context)),
"4" (rmcb->regs_sel), "1" (rmcb->regs_ofs),
- "3" (&rmcb->proc_ofs)
- : "ebx" );
+ "3" (&rmcb->proc_ofs) );
} else {
/* 16-bit DPMI client */
CONTEXT86 ctx = *context;