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