Index: src/platform-linux.cc |
diff --git a/src/platform-linux.cc b/src/platform-linux.cc |
index b9ce9d966d41ce8199b2a29b2c20e81cdd3efb9a..beb2ccee297fa062a8951fee7098a9f9b91a2de3 100644 |
--- a/src/platform-linux.cc |
+++ b/src/platform-linux.cc |
@@ -174,6 +174,24 @@ bool OS::ArmCpuHasFeature(CpuFeature feature) { |
} |
+CpuImplementer OS::GetCpuImplementer() { |
+ static bool use_cached_value = false; |
+ static CpuImplementer cached_value = UNKNOWN_IMPLEMENTER; |
+ if (use_cached_value) { |
+ return cached_value; |
+ } |
+ if (CPUInfoContainsString("CPU implementer\t: 0x41")) { |
+ cached_value = ARM_IMPLEMENTER; |
+ } else if (CPUInfoContainsString("CPU implementer\t: 0x51")) { |
+ cached_value = QUALCOMM_IMPLEMENTER; |
+ } else { |
+ cached_value = UNKNOWN_IMPLEMENTER; |
+ } |
+ use_cached_value = true; |
+ return cached_value; |
+} |
+ |
+ |
bool OS::ArmUsingHardFloat() { |
// GCC versions 4.6 and above define __ARM_PCS or __ARM_PCS_VFP to specify |
// the Floating Point ABI used (PCS stands for Procedure Call Standard). |