libsmbios/libsmbios-pic-assembler.patch

29 lines
863 B
Diff

Index: libsmbios-2.2.28/src/bin/dellMediaDirectCtl.cpp
===================================================================
--- libsmbios-2.2.28.orig/src/bin/dellMediaDirectCtl.cpp
+++ libsmbios-2.2.28/src/bin/dellMediaDirectCtl.cpp
@@ -196,17 +196,21 @@ void _callSmi(smiRegs *r, u8 port)
__asm__ __volatile__ (
// magic port
+ "push %%ebx\n\t"
+ "mov %0, %%ebx\n\t"
"outb %%al, %%dx \n\t"
+ "mov %%ebx,%1\n\t"
+ "pop %%ebx\n\t"
: /* output args */
"=a" (r->eax),
- "=b" (r->ebx),
+ "=g" (r->ebx),
"=c" (r->ecx),
"=S" (r->esi),
"=D" (r->edi)
: /* input args */
"0" (r->eax),
- "1" (r->ebx),
+ "g" (r->ebx),
"2" (r->ecx),
"3" (r->esi),
"4" (r->edi),