blob: 9162044169e233100a57a02d6ebc748132756b70 [file] [log] [blame]
diff -Naur libsmbios-2.2.19.orig/src/bin/dellMediaDirectCtl.cpp libsmbios-2.2.19/src/bin/dellMediaDirectCtl.cpp
--- libsmbios-2.2.19.orig/src/bin/dellMediaDirectCtl.cpp 2009-02-26 14:29:03.000000000 +0000
+++ libsmbios-2.2.19/src/bin/dellMediaDirectCtl.cpp 2011-01-20 06:55:48.000000000 +0000
@@ -183,16 +183,21 @@
{
iopl(3);
+ u32 tmpebx;
__asm__ __volatile__ (
- // magic port
- "outb %%al, %%dx \n\t"
-
+ "movl %%ebx,%[tmpebx]\n\t"
+ "movl %[ebx],%%ebx\n\t"
+ // magic port
+ "outb %%al, %%dx \n\t"
+ "movl %%ebx,%[ebx]\n\t"
+ "movl %[tmpebx],%%ebx\n\t"
: /* output args */
"=a" (r->eax),
- "=b" (r->ebx),
+ [ebx] "=rm" (r->ebx),
"=c" (r->ecx),
"=S" (r->esi),
- "=D" (r->edi)
+ "=D" (r->edi),
+ [tmpebx] "+m" (tmpebx)
: /* input args */
"0" (r->eax),
"1" (r->ebx),