ARM: improve RTABI 4.2 conformance on Linux
[oota-llvm.git] / lib / Support / Host.cpp
index 7e86e2ffcf28a4ddef0abdba39591c426a2e9096..e2dd6d522bb7f19863125128cf9d9b5f3259ee42 100644 (file)
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-//  This header file implements the operating system Host concept.
+//  This file implements the operating system Host concept.
 //
 //===----------------------------------------------------------------------===//
 
@@ -570,6 +570,8 @@ StringRef sys::getHostCPUName() {
     .Case("A2", "a2")
     .Case("POWER6", "pwr6")
     .Case("POWER7", "pwr7")
+    .Case("POWER8", "pwr8")
+    .Case("POWER8E", "pwr8")
     .Default(generic);
 }
 #elif defined(__linux__) && defined(__arm__)
@@ -718,10 +720,10 @@ bool sys::getHostCPUFeatures(StringMap<bool> &Features) {
 #if defined(__aarch64__)
   // Keep track of which crypto features we have seen
   enum {
-    HWCAP_AES   = 0x1,
-    HWCAP_PMULL = 0x2,
-    HWCAP_SHA1  = 0x4,
-    HWCAP_SHA2  = 0x8
+    CAP_AES   = 0x1,
+    CAP_PMULL = 0x2,
+    CAP_SHA1  = 0x4,
+    CAP_SHA2  = 0x8
   };
   uint32_t crypto = 0;
 #endif
@@ -744,16 +746,16 @@ bool sys::getHostCPUFeatures(StringMap<bool> &Features) {
       .Default("");
 
 #if defined(__aarch64__)
-    // We need to check crypto seperately since we need all of the crypto
+    // We need to check crypto separately since we need all of the crypto
     // extensions to enable the subtarget feature
     if (CPUFeatures[I] == "aes")
-      crypto |= HWCAP_AES;
+      crypto |= CAP_AES;
     else if (CPUFeatures[I] == "pmull")
-      crypto |= HWCAP_PMULL;
+      crypto |= CAP_PMULL;
     else if (CPUFeatures[I] == "sha1")
-      crypto |= HWCAP_SHA1;
+      crypto |= CAP_SHA1;
     else if (CPUFeatures[I] == "sha2")
-      crypto |= HWCAP_SHA2;
+      crypto |= CAP_SHA2;
 #endif
 
     if (LLVMFeatureStr != "")
@@ -762,7 +764,7 @@ bool sys::getHostCPUFeatures(StringMap<bool> &Features) {
 
 #if defined(__aarch64__)
   // If we have all crypto bits we can add the feature
-  if (crypto == (HWCAP_AES | HWCAP_PMULL | HWCAP_SHA1 | HWCAP_SHA2))
+  if (crypto == (CAP_AES | CAP_PMULL | CAP_SHA1 | CAP_SHA2))
     Features.GetOrCreateValue("crypto").setValue(true);
 #endif