Blame include/elf/msp430.h

Packit bbfece
/* MSP430 ELF support for BFD.
Packit bbfece
   Copyright (C) 2002-2018 Free Software Foundation, Inc.
Packit bbfece
   Contributed by Dmitry Diky <diwil@mail.ru>
Packit bbfece
Packit bbfece
   This file is part of BFD, the Binary File Descriptor library.
Packit bbfece
Packit bbfece
   This program is free software; you can redistribute it and/or modify
Packit bbfece
   it under the terms of the GNU General Public License as published by
Packit bbfece
   the Free Software Foundation; either version 3 of the License, or
Packit bbfece
   (at your option) any later version.
Packit bbfece
Packit bbfece
   This program is distributed in the hope that it will be useful,
Packit bbfece
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit bbfece
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit bbfece
   GNU General Public License for more details.
Packit bbfece
Packit bbfece
   You should have received a copy of the GNU General Public License
Packit bbfece
   along with this program; if not, write to the Free Software Foundation,
Packit bbfece
   Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
Packit bbfece
Packit bbfece
#ifndef _ELF_MSP430_H
Packit bbfece
#define _ELF_MSP430_H
Packit bbfece
Packit bbfece
#include "elf/reloc-macros.h"
Packit bbfece
Packit bbfece
/* Processor specific flags for the ELF header e_flags field.  */
Packit bbfece
#define EF_MSP430_MACH 		0xff
Packit bbfece
Packit bbfece
#define E_MSP430_MACH_MSP430x11  11
Packit bbfece
#define E_MSP430_MACH_MSP430x11x1  110
Packit bbfece
#define E_MSP430_MACH_MSP430x12  12
Packit bbfece
#define E_MSP430_MACH_MSP430x13  13
Packit bbfece
#define E_MSP430_MACH_MSP430x14  14
Packit bbfece
#define E_MSP430_MACH_MSP430x15  15
Packit bbfece
#define E_MSP430_MACH_MSP430x16  16
Packit bbfece
#define E_MSP430_MACH_MSP430x20  20
Packit bbfece
#define E_MSP430_MACH_MSP430x22  22
Packit bbfece
#define E_MSP430_MACH_MSP430x23  23
Packit bbfece
#define E_MSP430_MACH_MSP430x24  24
Packit bbfece
#define E_MSP430_MACH_MSP430x26  26
Packit bbfece
#define E_MSP430_MACH_MSP430x31  31
Packit bbfece
#define E_MSP430_MACH_MSP430x32  32
Packit bbfece
#define E_MSP430_MACH_MSP430x33  33
Packit bbfece
#define E_MSP430_MACH_MSP430x41  41
Packit bbfece
#define E_MSP430_MACH_MSP430x42  42
Packit bbfece
#define E_MSP430_MACH_MSP430x43  43
Packit bbfece
#define E_MSP430_MACH_MSP430x44  44
Packit bbfece
#define E_MSP430_MACH_MSP430X    45
Packit bbfece
#define E_MSP430_MACH_MSP430x46  46
Packit bbfece
#define E_MSP430_MACH_MSP430x47  47
Packit bbfece
#define E_MSP430_MACH_MSP430x54  54
Packit bbfece
Packit bbfece
#define SHT_MSP430_ATTRIBUTES	0x70000003	/* Section holds ABI attributes.  */
Packit bbfece
#define SHT_MSP430_SEC_FLAGS	0x7f000005	/* Holds TI compiler's section flags.  */
Packit bbfece
#define SHT_MSP430_SYM_ALIASES	0x7f000006	/* Holds TI compiler's symbol aliases.  */
Packit bbfece
Packit bbfece
/* Tag values for an attribute section.  */
Packit bbfece
#define OFBA_MSPABI_Tag_ISA		4
Packit bbfece
#define OFBA_MSPABI_Tag_Code_Model	6
Packit bbfece
#define OFBA_MSPABI_Tag_Data_Model	8
Packit bbfece
Packit bbfece
/* Relocations.  */
Packit bbfece
START_RELOC_NUMBERS (elf_msp430_reloc_type)
Packit bbfece
     RELOC_NUMBER (R_MSP430_NONE,		0)
Packit bbfece
     RELOC_NUMBER (R_MSP430_32,			1)
Packit bbfece
     RELOC_NUMBER (R_MSP430_10_PCREL,		2)
Packit bbfece
     RELOC_NUMBER (R_MSP430_16, 		3)
Packit bbfece
     RELOC_NUMBER (R_MSP430_16_PCREL, 		4)
Packit bbfece
     RELOC_NUMBER (R_MSP430_16_BYTE, 		5)
Packit bbfece
     RELOC_NUMBER (R_MSP430_16_PCREL_BYTE, 	6)
Packit bbfece
     RELOC_NUMBER (R_MSP430_2X_PCREL,		7)
Packit bbfece
     RELOC_NUMBER (R_MSP430_RL_PCREL,		8)
Packit bbfece
     RELOC_NUMBER (R_MSP430_8,			9)
Packit bbfece
     RELOC_NUMBER (R_MSP430_SYM_DIFF,		10)
Packit bbfece
END_RELOC_NUMBERS (R_MSP430_max)
Packit bbfece
Packit bbfece
START_RELOC_NUMBERS (elf_msp430x_reloc_type)
Packit bbfece
     RELOC_NUMBER (R_MSP430_ABS32, 1)		/* aka R_MSP430_32 */
Packit bbfece
     RELOC_NUMBER (R_MSP430_ABS16, 2)		/* aka R_MSP430_16 */
Packit bbfece
     RELOC_NUMBER (R_MSP430_ABS8, 3)
Packit bbfece
     RELOC_NUMBER (R_MSP430_PCR16, 4)		/* aka R_MSP430_16_PCREL */
Packit bbfece
     RELOC_NUMBER (R_MSP430X_PCR20_EXT_SRC, 5)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_PCR20_EXT_DST, 6)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_PCR20_EXT_ODST, 7)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_ABS20_EXT_SRC, 8)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_ABS20_EXT_DST, 9)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_ABS20_EXT_ODST, 10)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_ABS20_ADR_SRC, 11)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_ABS20_ADR_DST, 12)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_PCR16, 13)		/* Like R_MSP430_PCR16 but with overflow checking.  */
Packit bbfece
     RELOC_NUMBER (R_MSP430X_PCR20_CALL, 14)
Packit bbfece
     RELOC_NUMBER (R_MSP430X_ABS16, 15)		/* Like R_MSP430_ABS16 but with overflow checking.  */
Packit bbfece
     RELOC_NUMBER (R_MSP430_ABS_HI16, 16)
Packit bbfece
     RELOC_NUMBER (R_MSP430_PREL31, 17)
Packit bbfece
     RELOC_NUMBER (R_MSP430_EHTYPE, 18)		/* Mentioned in ABI.  */
Packit bbfece
     RELOC_NUMBER (R_MSP430X_10_PCREL, 19)	/* Red Hat invention.  Used for Jump instructions.  */
Packit bbfece
     RELOC_NUMBER (R_MSP430X_2X_PCREL, 20)	/* Red Hat invention.  Used for relaxing jumps.  */
Packit bbfece
     RELOC_NUMBER (R_MSP430X_SYM_DIFF, 21)	/* Red Hat invention.  Used for relaxing debug info.  */
Packit bbfece
END_RELOC_NUMBERS (R_MSP430x_max)
Packit bbfece
Packit bbfece
#endif /* _ELF_MSP430_H */