Use the cpuid 64 bit flag to pick the default CPU name for an unknown model.
authorBob Wilson <bob.wilson@apple.com>
Wed, 9 May 2012 17:47:03 +0000 (17:47 +0000)
committerBob Wilson <bob.wilson@apple.com>
Wed, 9 May 2012 17:47:03 +0000 (17:47 +0000)
For the Family 6 switch in sys::getHostCPUName, an unrecognized model was
reported as "i686".  That's a really bad default since it means that new
CPUs will be treated as if they can only use 32-bit code.  This just looks
at the cpuid extended feature flag for 64 bit support, and if that is set,
it uses a default x86-64 cpu.  Similar logic is already used for the Family
15 code.  <rdar://problem/11314502>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156486 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Host.cpp

index 6d42780cc28099120bc5f45c6808c87a1403f200..1ad7852dd93382b7ccfded58fd9f8f4c44f93882 100644 (file)
@@ -239,7 +239,7 @@ std::string sys::getHostCPUName() {
       case 39: // 32 nm Atom Medfield
         return "atom";
 
-      default: return "i686";
+      default: return (Em64T) ? "x86-64" : "i686";
       }
     case 15: {
       switch (Model) {