ARM: support .watchos_version_min and .tvos_version_min.
[oota-llvm.git] / include / llvm / MC / MCDirectives.h
index 57ce75db4f061cc24b804a6863db2e1ee8f146af..326b2a1ac061b894c7a6fa98a5ebe8ca56549eb6 100644 (file)
 namespace llvm {
 
 enum MCSymbolAttr {
-  MCSA_Invalid = 0,    /// Not a valid directive.
+  MCSA_Invalid = 0,    ///< Not a valid directive.
 
   // Various directives in alphabetical order.
-  MCSA_Global,         /// .globl
-  MCSA_Hidden,         /// .hidden (ELF)
-  MCSA_IndirectSymbol, /// .indirect_symbol (MachO)
-  MCSA_Internal,       /// .internal (ELF)
-  MCSA_LazyReference,  /// .lazy_reference (MachO)
-  MCSA_Local,          /// .local (ELF)
-  MCSA_NoDeadStrip,    /// .no_dead_strip (MachO)
-  MCSA_PrivateExtern,  /// .private_extern (MachO)
-  MCSA_Protected,      /// .protected (ELF)
-  MCSA_Reference,      /// .reference (MachO)
-  MCSA_Weak,           /// .weak
-  MCSA_WeakDefinition, /// .weak_definition (MachO)
-  MCSA_WeakReference   /// .weak_reference (MachO)
+  MCSA_ELF_TypeFunction,    ///< .type _foo, STT_FUNC  # aka @function
+  MCSA_ELF_TypeIndFunction, ///< .type _foo, STT_GNU_IFUNC
+  MCSA_ELF_TypeObject,      ///< .type _foo, STT_OBJECT  # aka @object
+  MCSA_ELF_TypeTLS,         ///< .type _foo, STT_TLS     # aka @tls_object
+  MCSA_ELF_TypeCommon,      ///< .type _foo, STT_COMMON  # aka @common
+  MCSA_ELF_TypeNoType,      ///< .type _foo, STT_NOTYPE  # aka @notype
+  MCSA_ELF_TypeGnuUniqueObject, /// .type _foo, @gnu_unique_object
+  MCSA_Global,              ///< .globl
+  MCSA_Hidden,              ///< .hidden (ELF)
+  MCSA_IndirectSymbol,      ///< .indirect_symbol (MachO)
+  MCSA_Internal,            ///< .internal (ELF)
+  MCSA_LazyReference,       ///< .lazy_reference (MachO)
+  MCSA_Local,               ///< .local (ELF)
+  MCSA_NoDeadStrip,         ///< .no_dead_strip (MachO)
+  MCSA_SymbolResolver,      ///< .symbol_resolver (MachO)
+  MCSA_PrivateExtern,       ///< .private_extern (MachO)
+  MCSA_Protected,           ///< .protected (ELF)
+  MCSA_Reference,           ///< .reference (MachO)
+  MCSA_Weak,                ///< .weak
+  MCSA_WeakDefinition,      ///< .weak_definition (MachO)
+  MCSA_WeakReference,       ///< .weak_reference (MachO)
+  MCSA_WeakDefAutoPrivate   ///< .weak_def_can_be_hidden (MachO)
 };
 
 enum MCAssemblerFlag {
-  MCAF_SubsectionsViaSymbols  /// .subsections_via_symbols (MachO)
+  MCAF_SyntaxUnified,         ///< .syntax (ARM/ELF)
+  MCAF_SubsectionsViaSymbols, ///< .subsections_via_symbols (MachO)
+  MCAF_Code16,                ///< .code16 (X86) / .code 16 (ARM)
+  MCAF_Code32,                ///< .code32 (X86) / .code 32 (ARM)
+  MCAF_Code64                 ///< .code64 (X86)
 };
-  
+
+enum MCDataRegionType {
+  MCDR_DataRegion,            ///< .data_region
+  MCDR_DataRegionJT8,         ///< .data_region jt8
+  MCDR_DataRegionJT16,        ///< .data_region jt16
+  MCDR_DataRegionJT32,        ///< .data_region jt32
+  MCDR_DataRegionEnd          ///< .end_data_region
+};
+
+enum MCVersionMinType {
+  MCVM_IOSVersionMin,         ///< .ios_version_min
+  MCVM_OSXVersionMin,         ///< .macosx_version_min
+  MCVM_TvOSVersionMin,        ///< .tvos_version_min
+  MCVM_WatchOSVersionMin,     ///< .watchos_version_min
+};
+
 } // end namespace llvm
 
 #endif