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/Compiler.h" 22 #include "llvm/Support/ELFAttributes.h" 23 24 namespace llvm { 25 namespace MSP430Attrs { 26 27 LLVM_ABI const TagNameMap &getMSP430AttributeTags(); 28 29 enum AttrType : unsigned { 30 // Attribute types in ELF/.MSP430.attributes. 31 TagISA = 4, 32 TagCodeModel = 6, 33 TagDataModel = 8, 34 TagEnumSize = 10 35 }; 36 37 enum ISA { ISAMSP430 = 1, ISAMSP430X = 2 }; 38 enum CodeModel { CMSmall = 1, CMLarge = 2 }; 39 enum DataModel { DMSmall = 1, DMLarge = 2, DMRestricted = 3 }; 40 enum EnumSize { ESSmall = 1, ESInteger = 2, ESDontCare = 3 }; 41 42 } // namespace MSP430Attrs 43 } // namespace llvm 44 45 #endif 46