Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.6 KiB

  1. //===- MCDirectives.h - Enums for directives on various targets -*- C++ -*-===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. //
  10. // This file defines various enums that represent target-specific directives.
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #ifndef LLVM_MC_MCDIRECTIVES_H
  14. #define LLVM_MC_MCDIRECTIVES_H
  15. namespace llvm {
  16. enum MCSymbolAttr {
  17. MCSA_Invalid = 0, ///< Not a valid directive.
  18. // Various directives in alphabetical order.
  19. MCSA_ELF_TypeFunction, ///< .type _foo, STT_FUNC # aka @function
  20. MCSA_ELF_TypeIndFunction, ///< .type _foo, STT_GNU_IFUNC
  21. MCSA_ELF_TypeObject, ///< .type _foo, STT_OBJECT # aka @object
  22. MCSA_ELF_TypeTLS, ///< .type _foo, STT_TLS # aka @tls_object
  23. MCSA_ELF_TypeCommon, ///< .type _foo, STT_COMMON # aka @common
  24. MCSA_ELF_TypeNoType, ///< .type _foo, STT_NOTYPE # aka @notype
  25. MCSA_ELF_TypeGnuUniqueObject, /// .type _foo, @gnu_unique_object
  26. MCSA_Global, ///< .globl
  27. MCSA_Hidden, ///< .hidden (ELF)
  28. MCSA_IndirectSymbol, ///< .indirect_symbol (MachO)
  29. MCSA_Internal, ///< .internal (ELF)
  30. MCSA_LazyReference, ///< .lazy_reference (MachO)
  31. MCSA_Local, ///< .local (ELF)
  32. MCSA_NoDeadStrip, ///< .no_dead_strip (MachO)
  33. MCSA_SymbolResolver, ///< .symbol_resolver (MachO)
  34. MCSA_PrivateExtern, ///< .private_extern (MachO)
  35. MCSA_Protected, ///< .protected (ELF)
  36. MCSA_Reference, ///< .reference (MachO)
  37. MCSA_Weak, ///< .weak
  38. MCSA_WeakDefinition, ///< .weak_definition (MachO)
  39. MCSA_WeakReference, ///< .weak_reference (MachO)
  40. MCSA_WeakDefAutoPrivate ///< .weak_def_can_be_hidden (MachO)
  41. };
  42. enum MCAssemblerFlag {
  43. MCAF_SyntaxUnified, ///< .syntax (ARM/ELF)
  44. MCAF_SubsectionsViaSymbols, ///< .subsections_via_symbols (MachO)
  45. MCAF_Code16, ///< .code16 (X86) / .code 16 (ARM)
  46. MCAF_Code32, ///< .code32 (X86) / .code 32 (ARM)
  47. MCAF_Code64 ///< .code64 (X86)
  48. };
  49. enum MCDataRegionType {
  50. MCDR_DataRegion, ///< .data_region
  51. MCDR_DataRegionJT8, ///< .data_region jt8
  52. MCDR_DataRegionJT16, ///< .data_region jt16
  53. MCDR_DataRegionJT32, ///< .data_region jt32
  54. MCDR_DataRegionEnd ///< .end_data_region
  55. };
  56. } // end namespace llvm
  57. #endif