ARM: make sure we keep inline asm operands tied.
[oota-llvm.git] / lib / Target / ARM / ARMSubtarget.h
index def6fbb1ca6fdeaedd2d739be2d8532e1d1cc75c..ad7f1b3e3487bc1d3171d114b49ba326c6409666 100644 (file)
@@ -194,10 +194,6 @@ protected:
   const TargetOptions &Options;
 
  public:
-  enum {
-    isELF, isDarwin
-  } TargetType;
-
   enum {
     ARM_ABI_APCS,
     ARM_ABI_AAPCS // ARM EABI
@@ -284,6 +280,14 @@ public:
   bool isTargetNaCl() const { return TargetTriple.getOS() == Triple::NaCl; }
   bool isTargetLinux() const { return TargetTriple.getOS() == Triple::Linux; }
   bool isTargetELF() const { return !isTargetDarwin(); }
+  // ARM EABI is the bare-metal EABI described in ARM ABI documents and
+  // can be accessed via -target arm-none-eabi. This is NOT GNUEABI.
+  // FIXME: Add a flag for bare-metal for that target and set Triple::EABI
+  // even for GNUEABI, so we can make a distinction here and still conform to
+  // the EABI on GNU (and Android) mode. This requires change in Clang, too.
+  bool isTargetAEABI() const {
+    return TargetTriple.getEnvironment() == Triple::EABI;
+  }
 
   bool isAPCS_ABI() const { return TargetABI == ARM_ABI_APCS; }
   bool isAAPCS_ABI() const { return TargetABI == ARM_ABI_AAPCS; }