1202878Srdivacky//===- MCDirectives.h - Enums for directives on various targets -*- C++ -*-===// 2202878Srdivacky// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6202878Srdivacky// 7202878Srdivacky//===----------------------------------------------------------------------===// 8202878Srdivacky// 9202878Srdivacky// This file defines various enums that represent target-specific directives. 10202878Srdivacky// 11202878Srdivacky//===----------------------------------------------------------------------===// 12202878Srdivacky 13202878Srdivacky#ifndef LLVM_MC_MCDIRECTIVES_H 14202878Srdivacky#define LLVM_MC_MCDIRECTIVES_H 15202878Srdivacky 16202878Srdivackynamespace llvm { 17202878Srdivacky 18202878Srdivackyenum MCSymbolAttr { 19203954Srdivacky MCSA_Invalid = 0, ///< Not a valid directive. 20202878Srdivacky 21202878Srdivacky // Various directives in alphabetical order. 22353358Sdim MCSA_Cold, ///< .cold (MachO) 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 31360784Sdim MCSA_LGlobal, ///< .lglobl (XCOFF) 32203954Srdivacky MCSA_Hidden, ///< .hidden (ELF) 33203954Srdivacky MCSA_IndirectSymbol, ///< .indirect_symbol (MachO) 34203954Srdivacky MCSA_Internal, ///< .internal (ELF) 35203954Srdivacky MCSA_LazyReference, ///< .lazy_reference (MachO) 36203954Srdivacky MCSA_Local, ///< .local (ELF) 37203954Srdivacky MCSA_NoDeadStrip, ///< .no_dead_strip (MachO) 38218893Sdim MCSA_SymbolResolver, ///< .symbol_resolver (MachO) 39309124Sdim MCSA_AltEntry, ///< .alt_entry (MachO) 40203954Srdivacky MCSA_PrivateExtern, ///< .private_extern (MachO) 41203954Srdivacky MCSA_Protected, ///< .protected (ELF) 42203954Srdivacky MCSA_Reference, ///< .reference (MachO) 43203954Srdivacky MCSA_Weak, ///< .weak 44203954Srdivacky MCSA_WeakDefinition, ///< .weak_definition (MachO) 45210299Sed MCSA_WeakReference, ///< .weak_reference (MachO) 46210299Sed MCSA_WeakDefAutoPrivate ///< .weak_def_can_be_hidden (MachO) 47202878Srdivacky}; 48202878Srdivacky 49202878Srdivackyenum MCAssemblerFlag { 50218893Sdim MCAF_SyntaxUnified, ///< .syntax (ARM/ELF) 51218893Sdim MCAF_SubsectionsViaSymbols, ///< .subsections_via_symbols (MachO) 52226633Sdim MCAF_Code16, ///< .code16 (X86) / .code 16 (ARM) 53226633Sdim MCAF_Code32, ///< .code32 (X86) / .code 32 (ARM) 54226633Sdim MCAF_Code64 ///< .code64 (X86) 55202878Srdivacky}; 56218893Sdim 57239462Sdimenum MCDataRegionType { 58239462Sdim MCDR_DataRegion, ///< .data_region 59239462Sdim MCDR_DataRegionJT8, ///< .data_region jt8 60239462Sdim MCDR_DataRegionJT16, ///< .data_region jt16 61239462Sdim MCDR_DataRegionJT32, ///< .data_region jt32 62239462Sdim MCDR_DataRegionEnd ///< .end_data_region 63239462Sdim}; 64239462Sdim 65276479Sdimenum MCVersionMinType { 66276479Sdim MCVM_IOSVersionMin, ///< .ios_version_min 67296417Sdim MCVM_OSXVersionMin, ///< .macosx_version_min 68296417Sdim MCVM_TvOSVersionMin, ///< .tvos_version_min 69296417Sdim MCVM_WatchOSVersionMin, ///< .watchos_version_min 70276479Sdim}; 71276479Sdim 72202878Srdivacky} // end namespace llvm 73202878Srdivacky 74202878Srdivacky#endif 75