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