diff options
author | Chris Lattner <sabre@nondot.org> | 2006-01-28 06:05:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-01-28 06:05:41 +0000 |
commit | dc8bbb652716f0e637a790c29ba3ad3a3cd22a44 (patch) | |
tree | b8129a026aa05c62a83c3bef2551d46b4cead43c /llvm/lib/Target/X86/X86Subtarget.cpp | |
parent | 0c7b4666a36bda8fa21d60438657cde72f126c41 (diff) | |
download | bcm5719-llvm-dc8bbb652716f0e637a790c29ba3ad3a3cd22a44.tar.gz bcm5719-llvm-dc8bbb652716f0e637a790c29ba3ad3a3cd22a44.zip |
make this work on non-native hosts
llvm-svn: 25734
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp index dc716143ebb..3553c60cada 100644 --- a/llvm/lib/Target/X86/X86Subtarget.cpp +++ b/llvm/lib/Target/X86/X86Subtarget.cpp @@ -23,7 +23,9 @@ namespace { cl::desc("Enable sse on X86")); } -static void GetCpuIDAndInfo(unsigned value, unsigned *EAX, unsigned *EBX, +/// GetCpuIDAndInfo - Execute the specified cpuid and return the 4 values in the +/// specified arguments. If we can't run cpuid on the host, return true. +static bool GetCpuIDAndInfo(unsigned value, unsigned *EAX, unsigned *EBX, unsigned *ECX, unsigned *EDX) { #if defined(i386) || defined(__i386__) || defined(__x86__) || defined(_M_IX86) #if defined(__GNUC__) @@ -36,13 +38,16 @@ static void GetCpuIDAndInfo(unsigned value, unsigned *EAX, unsigned *EBX, "=c" (*ECX), "=d" (*EDX) : "a" (value)); + return false; #endif #endif + return true; } static const char *GetCurrentX86CPU() { unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0; - GetCpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX); + if (GetCpuIDAndInfo(0x1, &EAX, &EBX, &ECX, &EDX)) + return "generic"; 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, &EBX, &ECX, &EDX); @@ -58,7 +63,6 @@ static const char *GetCurrentX86CPU() { case 4: return "pentium-mmx"; default: return "pentium"; } - break; case 6: switch (Model) { case 1: return "pentiumpro"; |