LLVM API Documentation

MCDirectives.h
Go to the documentation of this file.
00001 //===- MCDirectives.h - Enums for directives on various targets -*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file defines various enums that represent target-specific directives.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 
00014 #ifndef LLVM_MC_MCDIRECTIVES_H
00015 #define LLVM_MC_MCDIRECTIVES_H
00016 
00017 namespace llvm {
00018 
00019 enum MCSymbolAttr {
00020   MCSA_Invalid = 0,    ///< Not a valid directive.
00021 
00022   // Various directives in alphabetical order.
00023   MCSA_ELF_TypeFunction,    ///< .type _foo, STT_FUNC  # aka @function
00024   MCSA_ELF_TypeIndFunction, ///< .type _foo, STT_GNU_IFUNC
00025   MCSA_ELF_TypeObject,      ///< .type _foo, STT_OBJECT  # aka @object
00026   MCSA_ELF_TypeTLS,         ///< .type _foo, STT_TLS     # aka @tls_object
00027   MCSA_ELF_TypeCommon,      ///< .type _foo, STT_COMMON  # aka @common
00028   MCSA_ELF_TypeNoType,      ///< .type _foo, STT_NOTYPE  # aka @notype
00029   MCSA_ELF_TypeGnuUniqueObject, /// .type _foo, @gnu_unique_object
00030   MCSA_Global,              ///< .globl
00031   MCSA_Hidden,              ///< .hidden (ELF)
00032   MCSA_IndirectSymbol,      ///< .indirect_symbol (MachO)
00033   MCSA_Internal,            ///< .internal (ELF)
00034   MCSA_LazyReference,       ///< .lazy_reference (MachO)
00035   MCSA_Local,               ///< .local (ELF)
00036   MCSA_NoDeadStrip,         ///< .no_dead_strip (MachO)
00037   MCSA_SymbolResolver,      ///< .symbol_resolver (MachO)
00038   MCSA_PrivateExtern,       ///< .private_extern (MachO)
00039   MCSA_Protected,           ///< .protected (ELF)
00040   MCSA_Reference,           ///< .reference (MachO)
00041   MCSA_Weak,                ///< .weak
00042   MCSA_WeakDefinition,      ///< .weak_definition (MachO)
00043   MCSA_WeakReference,       ///< .weak_reference (MachO)
00044   MCSA_WeakDefAutoPrivate   ///< .weak_def_can_be_hidden (MachO)
00045 };
00046 
00047 enum MCAssemblerFlag {
00048   MCAF_SyntaxUnified,         ///< .syntax (ARM/ELF)
00049   MCAF_SubsectionsViaSymbols, ///< .subsections_via_symbols (MachO)
00050   MCAF_Code16,                ///< .code16 (X86) / .code 16 (ARM)
00051   MCAF_Code32,                ///< .code32 (X86) / .code 32 (ARM)
00052   MCAF_Code64                 ///< .code64 (X86)
00053 };
00054 
00055 enum MCDataRegionType {
00056   MCDR_DataRegion,            ///< .data_region
00057   MCDR_DataRegionJT8,         ///< .data_region jt8
00058   MCDR_DataRegionJT16,        ///< .data_region jt16
00059   MCDR_DataRegionJT32,        ///< .data_region jt32
00060   MCDR_DataRegionEnd          ///< .end_data_region
00061 };
00062 
00063 enum MCVersionMinType {
00064   MCVM_IOSVersionMin,         ///< .ios_version_min
00065   MCVM_OSXVersionMin          ///< .macosx_version_min
00066 };
00067 
00068 } // end namespace llvm
00069 
00070 #endif