Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===-- MSP430Attributes.h - MSP430 Attributes ------------------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===-----------------------------------------------------------------------===//
  8. ///
  9. /// \file
  10. /// This file contains enumerations for MSP430 ELF build attributes as
  11. /// defined in the MSP430 ELF psABI specification.
  12. ///
  13. /// MSP430 ELF psABI specification
  14. ///
  15. /// https://www.ti.com/lit/pdf/slaa534
  16. ///
  17. //===----------------------------------------------------------------------===//
  18. #ifndef LLVM_SUPPORT_MSP430ATTRIBUTES_H
  19. #define LLVM_SUPPORT_MSP430ATTRIBUTES_H
  20.  
  21. #include "llvm/Support/ELFAttributes.h"
  22.  
  23. namespace llvm {
  24. namespace MSP430Attrs {
  25.  
  26. const TagNameMap &getMSP430AttributeTags();
  27.  
  28. enum AttrType : unsigned {
  29.   // Attribute types in ELF/.MSP430.attributes.
  30.   TagISA = 4,
  31.   TagCodeModel = 6,
  32.   TagDataModel = 8,
  33.   TagEnumSize = 10
  34. };
  35.  
  36. enum ISA { ISAMSP430 = 1, ISAMSP430X = 2 };
  37. enum CodeModel { CMSmall = 1, CMLarge = 2 };
  38. enum DataModel { DMSmall = 1, DMLarge = 2, DMRestricted = 3 };
  39. enum EnumSize { ESSmall = 1, ESInteger = 2, ESDontCare = 3 };
  40.  
  41. } // namespace MSP430Attrs
  42. } // namespace llvm
  43.  
  44. #endif
  45.