diff options
Diffstat (limited to 'src/libs/7zip/unix')
-rw-r--r-- | src/libs/7zip/unix/C/CpuArch.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libs/7zip/unix/C/CpuArch.c b/src/libs/7zip/unix/C/CpuArch.c index 260cc1f45..dffa5bd65 100644 --- a/src/libs/7zip/unix/C/CpuArch.c +++ b/src/libs/7zip/unix/C/CpuArch.c @@ -73,9 +73,17 @@ static void MyCPUID(UInt32 function, UInt32 *a, UInt32 *b, UInt32 *c, UInt32 *d) #else __asm__ __volatile__ ( + #if defined(MY_CPU_X86) && defined(__PIC__) + "mov %%ebx, %%edi;" + "cpuid;" + "xchgl %%ebx, %%edi;" + : "=a" (*a) , + "=D" (*b) , /* edi */ + #else "cpuid" : "=a" (*a) , "=b" (*b) , + #endif "=c" (*c) , "=d" (*d) : "0" (function)) ; |