/* V850 ELF support for BFD.
   Copyright (C) 1997-2015 Free Software Foundation, Inc.
   Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>

   This file is part of BFD, the Binary File Descriptor library.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
   MA 02110-1301, USA.  */

/* This file holds definitions specific to the MIPS ELF ABI.  Note
   that most of this is not actually implemented by BFD.  */

#ifndef _ELF_V850_H
#define _ELF_V850_H

/* Processor specific flags for the ELF header e_flags field.  */

/* Four bit V850 architecture field.  */
#define EF_V850_ARCH		0xf0000000

/* v850 code.  */
#define E_V850_ARCH		0x00000000

/* v850e code.  */
#define E_V850E_ARCH		0x10000000

/* v850e1 code.  */
#define E_V850E1_ARCH		0x20000000

/* v850e2 code.  */
#define E_V850E2_ARCH		0x30000000

/* v850e2v3 code.  */
#define E_V850E2V3_ARCH		0x40000000

/* v850e3v5 code.  */
#define E_V850E3V5_ARCH		0x60000000

/* Flags for the st_other field.  */
#define V850_OTHER_SDA		0x10	/* Symbol had SDA relocations.  */
#define V850_OTHER_ZDA		0x20	/* Symbol had ZDA relocations.  */
#define V850_OTHER_TDA		0x40	/* Symbol had TDA relocations.  */
#define V850_OTHER_ERROR	0x80	/* Symbol had an error reported.  */

/* V850 relocations.  */
#include "elf/reloc-macros.h"

START_RELOC_NUMBERS (v850_reloc_type)
     RELOC_NUMBER (R_V850_NONE, 0)
     RELOC_NUMBER (R_V850_9_PCREL, 1)
     RELOC_NUMBER (R_V850_22_PCREL, 2)
     RELOC_NUMBER (R_V850_HI16_S, 3)
     RELOC_NUMBER (R_V850_HI16, 4)
     RELOC_NUMBER (R_V850_LO16, 5)
     RELOC_NUMBER (R_V850_ABS32, 6)
     RELOC_NUMBER (R_V850_16, 7)
     RELOC_NUMBER (R_V850_8, 8)
     RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9)		/* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
     RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10)		/* For ld.w, ld.h, ld.hu, st.w, st.h */
     RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11)		/* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
     RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12)		/* For ld.w, ld.h, ld.hu, st.w, st.h */
     RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13)		/* For sst.w, sld.w */
     RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14)		/* For sst.h, sld.h */
     RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15)		/* For sst.b, sld.b */
     RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16)		/* For set1, clr1, not1, tst1, movea, movhi */
     RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17)		/* For sld.hu */
     RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18)		/* For sld.bu */
     RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19)	/* For ld.bu */
     RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20)	/* For ld.bu */
     RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21)		/* For callt */
     RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22)	/* For callt */
     RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
     RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
     RELOC_NUMBER (R_V850_LONGCALL, 25)
     RELOC_NUMBER (R_V850_LONGJUMP, 26)
     RELOC_NUMBER (R_V850_ALIGN, 27)
     RELOC_NUMBER (R_V850_REL32, 28)
     RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29)	/* For ld.bu */
     RELOC_NUMBER (R_V850_16_PCREL, 30)      		/* For loop */
     RELOC_NUMBER (R_V850_17_PCREL, 31)      		/* For br */
     RELOC_NUMBER (R_V850_23, 32)			/* For 23bit ld.[w,h,hu,b,bu],st.[w,h,b] */
     RELOC_NUMBER (R_V850_32_PCREL, 33)      		/* For jr32, jarl32 */
     RELOC_NUMBER (R_V850_32_ABS, 34)      		/* For jmp32 */
     RELOC_NUMBER (R_V850_16_SPLIT_OFFSET, 35)      	/* For ld.bu */
     RELOC_NUMBER (R_V850_16_S1, 36)      		/* For ld.w, ld.h st.w st.h */
     RELOC_NUMBER (R_V850_LO16_S1, 37)      		/* For ld.w, ld.h st.w st.h */
     RELOC_NUMBER (R_V850_CALLT_15_16_OFFSET, 38)	/* For ld.w, ld.h, ld.hu, st.w, st.h */
     RELOC_NUMBER (R_V850_32_GOTPCREL, 39)		/* GLOBAL_OFFSET_TABLE from pc */
     RELOC_NUMBER (R_V850_16_GOT, 40)      		/* GOT ENTRY from gp */
     RELOC_NUMBER (R_V850_32_GOT, 41)      		
     RELOC_NUMBER (R_V850_22_PLT, 42)			/* For jr */
     RELOC_NUMBER (R_V850_32_PLT, 43)			/* For jr32 */
     RELOC_NUMBER (R_V850_COPY, 44)      		
     RELOC_NUMBER (R_V850_GLOB_DAT, 45)      		
     RELOC_NUMBER (R_V850_JMP_SLOT, 46)      		
     RELOC_NUMBER (R_V850_RELATIVE, 47)      		
     RELOC_NUMBER (R_V850_16_GOTOFF, 48)      		/* From gp */
     RELOC_NUMBER (R_V850_32_GOTOFF, 49)      		
     RELOC_NUMBER (R_V850_CODE, 50)      		
     RELOC_NUMBER (R_V850_DATA, 51)      		/* For loop */

END_RELOC_NUMBERS (R_V850_max)


/* Processor specific section indices.  These sections do not actually
   exist.  Symbols with a st_shndx field corresponding to one of these
   values have a special meaning.  */

/* Small data area common symbol.  */
#define SHN_V850_SCOMMON	SHN_LORESERVE

/* Tiny data area common symbol.  */
#define SHN_V850_TCOMMON	(SHN_LORESERVE + 1)

/* Zero data area common symbol.  */
#define SHN_V850_ZCOMMON	(SHN_LORESERVE + 2)


/* Processor specific section types.  */

/* Section contains the .scommon data.  */
#define SHT_V850_SCOMMON	0x70000000

/* Section contains the .scommon data.  */
#define SHT_V850_TCOMMON	0x70000001

/* Section contains the .scommon data.  */
#define SHT_V850_ZCOMMON	0x70000002

/* Processor specific section flags.  */

/* This section must be in the small data area (pointed to by GP).  */
#define SHF_V850_GPREL		0x10000000

/* This section must be in the tiny data area (pointed to by EP).  */
#define SHF_V850_EPREL		0x20000000

/* This section must be in the zero data area (pointed to by R0).  */
#define SHF_V850_R0REL		0x40000000

/* Alternative versions of the above definitions, as specified by the RH850 ABI.  */

#define EF_RH850_ABI		0xF0000000

#define EF_V800_850E3		0x00100000

#define EF_RH850_FPU_DOUBLE	0x00000001	/* sizeof(double) == 8.  */
#define EF_RH850_FPU_SINGLE	0x00000002	/* sizeof(double) == 4.  */
#define EF_RH850_SIMD		0x00000004
#define EF_RH850_CACHE		0x00000008
#define EF_RH850_MMU		0x00000010
#define EF_RH850_REGMODE22	0x00000020	/* Registers r15-r24 (inclusive) are not used.  */
#define EF_RH850_REGMODE32	0x00000040
#define EF_RH850_DATA_ALIGN8	0x00000080	/* 8-byte alignment supported.  */
#define EF_RH850_GP_FIX		0x00000100	/* r4 is fixed.  */
#define EF_RH850_GP_NOFIX	0x00000200	/* r4 is callee save.  */
#define EF_RH850_EP_FIX		0x00000400	/* r30 is fixed.  */
#define EF_RH850_EP_NOFIX	0x00000800	/* r30 is callee save.  */
#define EF_RH850_TP_FIX		0x00001000	/* r5 is fixed.  */
#define EF_RH850_TP_NOFIX	0x00002000	/* r5 is callee save.  */
#define EF_RH850_REG2_RESERVE	0x00004000	/* r2 is fixed.  */
#define EF_RH850_REG2_NORESERVE 0x00008000	/* r2 is callee saved.  */

#define SHT_RNESAS_IOP		SHT_LOUSER	/* Used by Renesas linker.  */

#define SHF_RENESAS_ABS		0x80000000	/* Absolute section.  */
#define SHF_GHS_ABS		0x00000400	/* Use unknown.  */

#define STT_RENESAS_ENTRY	14		/* Set for functions called at reset time.  */

START_RELOC_NUMBERS (v800_reloc_type)

     RELOC_NUMBER (R_V800_NONE,      0x00)
     RELOC_NUMBER (R_V810_NONE,      0x30)
     RELOC_NUMBER (R_V810_BYTE,      0x31)
     RELOC_NUMBER (R_V810_HWORD,     0x32)
     RELOC_NUMBER (R_V810_WORD,      0x33)
     RELOC_NUMBER (R_V810_WLO,       0x34)
     RELOC_NUMBER (R_V810_WHI,       0x35)
     RELOC_NUMBER (R_V810_WHI1,      0x36)
     RELOC_NUMBER (R_V810_GPBYTE,    0x37)
     RELOC_NUMBER (R_V810_GPHWORD,   0x38)
     RELOC_NUMBER (R_V810_GPWORD,    0x39)
     RELOC_NUMBER (R_V810_GPWLO,     0x3a)
     RELOC_NUMBER (R_V810_GPWHI,     0x3b)
     RELOC_NUMBER (R_V810_GPWHI1,    0x3c)
     RELOC_NUMBER (R_V850_HWLO,      0x3d)
     FAKE_RELOC   (R_V810_reserved1, 0x3e)
     RELOC_NUMBER (R_V850_EP7BIT,    0x3f)
     RELOC_NUMBER (R_V850_EPHBYTE,   0x40)
     RELOC_NUMBER (R_V850_EPWBYTE,   0x41)
     RELOC_NUMBER (R_V850_REGHWLO,   0x42)
     FAKE_RELOC   (R_V810_reserved2, 0x43)
     RELOC_NUMBER (R_V850_GPHWLO,    0x44)
     FAKE_RELOC   (R_V810_reserved3, 0x45)
     RELOC_NUMBER (R_V850_PCR22,     0x46)
     RELOC_NUMBER (R_V850_BLO,       0x47)
     RELOC_NUMBER (R_V850_EP4BIT,    0x48)
     RELOC_NUMBER (R_V850_EP5BIT,    0x49)
     RELOC_NUMBER (R_V850_REGBLO,    0x4a)
     RELOC_NUMBER (R_V850_GPBLO,     0x4b)
     RELOC_NUMBER (R_V810_WLO_1,     0x4c)
     RELOC_NUMBER (R_V810_GPWLO_1,   0x4d)
     RELOC_NUMBER (R_V850_BLO_1,     0x4e)
     RELOC_NUMBER (R_V850_HWLO_1,    0x4f)
     FAKE_RELOC   (R_V810_reserved4, 0x50)
     RELOC_NUMBER (R_V850_GPBLO_1,   0x51)
     RELOC_NUMBER (R_V850_GPHWLO_1,  0x52)
     FAKE_RELOC   (R_V810_reserved5, 0x53)
     RELOC_NUMBER (R_V850_EPBLO,     0x54)
     RELOC_NUMBER (R_V850_EPHWLO,    0x55)
     FAKE_RELOC   (R_V810_reserved6, 0x56)
     RELOC_NUMBER (R_V850_EPWLO_N,   0x57)
     RELOC_NUMBER (R_V850_PC32,      0x58)
     RELOC_NUMBER (R_V850_W23BIT,    0x59)
     RELOC_NUMBER (R_V850_GPW23BIT,  0x5a)
     RELOC_NUMBER (R_V850_EPW23BIT,  0x5b)
     RELOC_NUMBER (R_V850_B23BIT,    0x5c)
     RELOC_NUMBER (R_V850_GPB23BIT,  0x5d)
     RELOC_NUMBER (R_V850_EPB23BIT,  0x5e)
     RELOC_NUMBER (R_V850_PC16U,     0x5f)
     RELOC_NUMBER (R_V850_PC17,      0x60)
     RELOC_NUMBER (R_V850_DW8,       0x61)
     RELOC_NUMBER (R_V850_GPDW8,     0x62)
     RELOC_NUMBER (R_V850_EPDW8,     0x63)
     RELOC_NUMBER (R_V850_PC9,       0x64)
     RELOC_NUMBER (R_V810_REGBYTE,   0x65)
     RELOC_NUMBER (R_V810_REGHWORD,  0x66)
     RELOC_NUMBER (R_V810_REGWORD,   0x67)
     RELOC_NUMBER (R_V810_REGWLO,    0x68)
     RELOC_NUMBER (R_V810_REGWHI,    0x69)
     RELOC_NUMBER (R_V810_REGWHI1,   0x6a)
     RELOC_NUMBER (R_V850_REGW23BIT, 0x6b)
     RELOC_NUMBER (R_V850_REGB23BIT, 0x6c)
     RELOC_NUMBER (R_V850_REGDW8,    0x6d)
     RELOC_NUMBER (R_V810_EPBYTE,    0x6e)
     RELOC_NUMBER (R_V810_EPHWORD,   0x6f)
     RELOC_NUMBER (R_V810_EPWORD,    0x70)
     RELOC_NUMBER (R_V850_WLO23,     0x71)
     RELOC_NUMBER (R_V850_WORD_E,    0x72)
     RELOC_NUMBER (R_V850_REGWORD_E, 0x73)
     RELOC_NUMBER (R_V850_WORD,      0x74)
     RELOC_NUMBER (R_V850_GPWORD,    0x75)
     RELOC_NUMBER (R_V850_REGWORD,   0x76)
     RELOC_NUMBER (R_V850_EPWORD,    0x77)
     RELOC_NUMBER (R_V810_TPBYTE,    0x78)
     RELOC_NUMBER (R_V810_TPHWORD,   0x79)
     RELOC_NUMBER (R_V810_TPWORD,    0x7a)
     RELOC_NUMBER (R_V810_TPWLO,     0x7b)
     RELOC_NUMBER (R_V810_TPWHI,     0x7c)
     RELOC_NUMBER (R_V810_TPWHI1,    0x7d)
     RELOC_NUMBER (R_V850_TPHWLO,    0x7e)
     RELOC_NUMBER (R_V850_TPBLO,     0x7f)
     RELOC_NUMBER (R_V810_TPWLO_1,   0x80)
     RELOC_NUMBER (R_V850_TPBLO_1,   0x81)
     RELOC_NUMBER (R_V850_TPHWLO_1,  0x82)
     RELOC_NUMBER (R_V850_TP23BIT,   0x83)
     RELOC_NUMBER (R_V850_TPW23BIT,  0x84)
     RELOC_NUMBER (R_V850_TPDW8,     0x85)

/* These are defined by the RH850 ABI, but not used.  */
     RELOC_NUMBER (R_V810_ABS32,     0xa0)
     RELOC_NUMBER (R_V850_SYM,       0xe0)
     RELOC_NUMBER (R_V850_OPadd,     0xe1)
     RELOC_NUMBER (R_V850_OPsub,     0xe2)
     RELOC_NUMBER (R_V850_OPsctsize, 0xe3)
     RELOC_NUMBER (R_V850_OPscttop,  0xe4)

END_RELOC_NUMBERS (R_V800_max)

#endif /* _ELF_V850_H */
