mirror of https://github.com/mpv-player/mpv
x86_64 only saves ebx, not rbx. Fix some potential compilation problem on amd64.
Patch by Zuxy Meng git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18535 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
9614f96612
commit
fb1abd6b3b
|
@ -43,9 +43,17 @@ static cpuid_regs_t
|
||||||
cpuid(int func) {
|
cpuid(int func) {
|
||||||
cpuid_regs_t regs;
|
cpuid_regs_t regs;
|
||||||
#define CPUID ".byte 0x0f, 0xa2; "
|
#define CPUID ".byte 0x0f, 0xa2; "
|
||||||
|
#ifdef __x86_64__
|
||||||
|
asm("mov %%rbx, %%rsi\n\t"
|
||||||
|
#else
|
||||||
asm("mov %%ebx, %%esi\n\t"
|
asm("mov %%ebx, %%esi\n\t"
|
||||||
|
#endif
|
||||||
CPUID"\n\t"
|
CPUID"\n\t"
|
||||||
"xchg %%esi, %%ebx"
|
#ifdef __x86_64__
|
||||||
|
"xchg %%rsi, %%rbx\n\t"
|
||||||
|
#else
|
||||||
|
"xchg %%esi, %%ebx\n\t"
|
||||||
|
#endif
|
||||||
: "=a" (regs.eax), "=S" (regs.ebx), "=c" (regs.ecx), "=d" (regs.edx)
|
: "=a" (regs.eax), "=S" (regs.ebx), "=c" (regs.ecx), "=d" (regs.edx)
|
||||||
: "0" (func));
|
: "0" (func));
|
||||||
return regs;
|
return regs;
|
||||||
|
|
Loading…
Reference in New Issue