Changes in directory llvm/lib/Target/X86:
X86Subtarget.cpp updated: 1.11 -> 1.12 --- Log message: A better workaround --- Diffs of the changes: (+5 -6) X86Subtarget.cpp | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) Index: llvm/lib/Target/X86/X86Subtarget.cpp diff -u llvm/lib/Target/X86/X86Subtarget.cpp:1.11 llvm/lib/Target/X86/X86Subtarget.cpp:1.12 --- llvm/lib/Target/X86/X86Subtarget.cpp:1.11 Fri Jan 27 12:30:50 2006 +++ llvm/lib/Target/X86/X86Subtarget.cpp Fri Jan 27 13:30:30 2006 @@ -22,11 +22,10 @@ #if defined(__GNUC__) asm ("pushl\t%%ebx\n\t" "cpuid\n\t" + "movl\t%%ebx, %%esi\n\t" "popl\t%%ebx" : "=a" (*EAX), -#if !defined(__DYNAMIC__) // This works around a gcc -fPIC bug - "=b" (*EBX), -#endif + "=S" (*EBX), "=c" (*ECX), "=d" (*EDX) : "a" (value)); @@ -35,11 +34,11 @@ } static const char *GetCurrentX86CPU() { - unsigned EAX = 0, DUMMY = 0, ECX = 0, EDX = 0; - GetCpuIDAndInfo(0x1, &EAX, &DUMMY, &ECX, &EDX); + unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0; + GetCpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX); unsigned Family = (EAX & (0xffffffff >> (32 - 4)) << 8) >> 8; // Bits 8 - 11 unsigned Model = (EAX & (0xffffffff >> (32 - 4)) << 4) >> 4; // Bits 4 - 7 - GetCpuIDAndInfo(0x80000001, &EAX, &DUMMY, &ECX, &EDX); + GetCpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX); bool Em64T = EDX & (1 << 29); switch (Family) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits