Replace string matching with a switch on Triple::getEnvironment.
authorJoerg Sonnenberger <joerg@bec.de>
Sun, 15 Dec 2013 00:12:52 +0000 (00:12 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Sun, 15 Dec 2013 00:12:52 +0000 (00:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197332 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMSubtarget.cpp

index 09b3ed641e3cb95ccae86c776be72fb752a964cf..e15872b56a67e460f4d768d162a56d234513bde4 100644 (file)
@@ -189,11 +189,17 @@ void ARMSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
   // Initialize scheduling itinerary for the specified CPU.
   InstrItins = getInstrItineraryForCPU(CPUString);
 
-  if ((TargetTriple.getTriple().find("eabi") != std::string::npos) ||
-      (isTargetIOS() && isMClass()))
-    // FIXME: We might want to separate AAPCS and EABI. Some systems, e.g.
-    // Darwin-EABI conforms to AACPS but not the rest of EABI.
+  switch (TargetTriple.getEnvironment()) {
+  case Triple::EABI:
+  case Triple::GNUEABI:
+  case Triple::GNUEABIHF:
     TargetABI = ARM_ABI_AAPCS;
+    break;
+  default:
+    if (isTargetIOS() && isMClass())
+      TargetABI = ARM_ABI_AAPCS;
+    break;
+  }
 
   if (isAAPCS_ABI())
     stackAlignment = 8;