1202878Srdivacky//===- MCDirectives.h - Enums for directives on various targets -*- C++ -*-===// 2202878Srdivacky// 3202878Srdivacky// The LLVM Compiler Infrastructure 4202878Srdivacky// 5202878Srdivacky// This file is distributed under the University of Illinois Open Source 6202878Srdivacky// License. See LICENSE.TXT for details. 7202878Srdivacky// 8202878Srdivacky//===----------------------------------------------------------------------===// 9202878Srdivacky// 10202878Srdivacky// This file defines various enums that represent target-specific directives. 11202878Srdivacky// 12202878Srdivacky//===----------------------------------------------------------------------===// 13202878Srdivacky 14202878Srdivacky#ifndef LLVM_MC_MCDIRECTIVES_H 15202878Srdivacky#define LLVM_MC_MCDIRECTIVES_H 16202878Srdivacky 17202878Srdivackynamespace llvm { 18202878Srdivacky 19202878Srdivackyenum MCSymbolAttr { 20203954Srdivacky MCSA_Invalid = 0, ///< Not a valid directive. 21202878Srdivacky 22202878Srdivacky // Various directives in alphabetical order. 23203954Srdivacky MCSA_ELF_TypeFunction, ///< .type _foo, STT_FUNC # aka @function 24203954Srdivacky MCSA_ELF_TypeIndFunction, ///< .type _foo, STT_GNU_IFUNC 25203954Srdivacky MCSA_ELF_TypeObject, ///< .type _foo, STT_OBJECT # aka @object 26203954Srdivacky MCSA_ELF_TypeTLS, ///< .type _foo, STT_TLS # aka @tls_object 27203954Srdivacky MCSA_ELF_TypeCommon, ///< .type _foo, STT_COMMON # aka @common 28203954Srdivacky MCSA_ELF_TypeNoType, ///< .type _foo, STT_NOTYPE # aka @notype 29218893Sdim MCSA_ELF_TypeGnuUniqueObject, /// .type _foo, @gnu_unique_object 30203954Srdivacky MCSA_Global, ///< .globl 31203954Srdivacky MCSA_Hidden, ///< .hidden (ELF) 32203954Srdivacky MCSA_IndirectSymbol, ///< .indirect_symbol (MachO) 33203954Srdivacky MCSA_Internal, ///< .internal (ELF) 34203954Srdivacky MCSA_LazyReference, ///< .lazy_reference (MachO) 35203954Srdivacky MCSA_Local, ///< .local (ELF) 36203954Srdivacky MCSA_NoDeadStrip, ///< .no_dead_strip (MachO) 37218893Sdim MCSA_SymbolResolver, ///< .symbol_resolver (MachO) 38203954Srdivacky MCSA_PrivateExtern, ///< .private_extern (MachO) 39203954Srdivacky MCSA_Protected, ///< .protected (ELF) 40203954Srdivacky MCSA_Reference, ///< .reference (MachO) 41203954Srdivacky MCSA_Weak, ///< .weak 42203954Srdivacky MCSA_WeakDefinition, ///< .weak_definition (MachO) 43210299Sed MCSA_WeakReference, ///< .weak_reference (MachO) 44210299Sed MCSA_WeakDefAutoPrivate ///< .weak_def_can_be_hidden (MachO) 45202878Srdivacky}; 46202878Srdivacky 47202878Srdivackyenum MCAssemblerFlag { 48218893Sdim MCAF_SyntaxUnified, ///< .syntax (ARM/ELF) 49218893Sdim MCAF_SubsectionsViaSymbols, ///< .subsections_via_symbols (MachO) 50226633Sdim MCAF_Code16, ///< .code16 (X86) / .code 16 (ARM) 51226633Sdim MCAF_Code32, ///< .code32 (X86) / .code 32 (ARM) 52226633Sdim MCAF_Code64 ///< .code64 (X86) 53202878Srdivacky}; 54218893Sdim 55239462Sdimenum MCDataRegionType { 56239462Sdim MCDR_DataRegion, ///< .data_region 57239462Sdim MCDR_DataRegionJT8, ///< .data_region jt8 58239462Sdim MCDR_DataRegionJT16, ///< .data_region jt16 59239462Sdim MCDR_DataRegionJT32, ///< .data_region jt32 60239462Sdim MCDR_DataRegionEnd ///< .end_data_region 61239462Sdim}; 62239462Sdim 63202878Srdivacky} // end namespace llvm 64202878Srdivacky 65202878Srdivacky#endif 66