xref: /dflybsd-src/contrib/binutils-2.34/include/elf/h8.h (revision b52ef7118d1621abed722c5bbbd542210290ecef)
1*fae548d3Szrj /* H8300/h8500 ELF support for BFD.
2*fae548d3Szrj    Copyright (C) 2001-2020 Free Software Foundation, Inc.
3*fae548d3Szrj 
4*fae548d3Szrj    This file is part of BFD, the Binary File Descriptor library.
5*fae548d3Szrj 
6*fae548d3Szrj    This program is free software; you can redistribute it and/or modify
7*fae548d3Szrj    it under the terms of the GNU General Public License as published by
8*fae548d3Szrj    the Free Software Foundation; either version 3 of the License, or
9*fae548d3Szrj    (at your option) any later version.
10*fae548d3Szrj 
11*fae548d3Szrj    This program is distributed in the hope that it will be useful,
12*fae548d3Szrj    but WITHOUT ANY WARRANTY; without even the implied warranty of
13*fae548d3Szrj    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*fae548d3Szrj    GNU General Public License for more details.
15*fae548d3Szrj 
16*fae548d3Szrj    You should have received a copy of the GNU General Public License
17*fae548d3Szrj    along with this program; if not, write to the Free Software Foundation,
18*fae548d3Szrj    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
19*fae548d3Szrj 
20*fae548d3Szrj #ifndef _ELF_H8_H
21*fae548d3Szrj #define _ELF_H8_H
22*fae548d3Szrj 
23*fae548d3Szrj #include "elf/reloc-macros.h"
24*fae548d3Szrj 
25*fae548d3Szrj /* Relocations.  */
26*fae548d3Szrj /* Relocations 59..64 are GNU extensions.  */
27*fae548d3Szrj START_RELOC_NUMBERS (elf_h8_reloc_type)
28*fae548d3Szrj   RELOC_NUMBER (R_H8_NONE, 0)
29*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32, 1)
30*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32_28, 2)
31*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32_24, 3)
32*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32_16, 4)
33*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32U, 6)
34*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32U_28, 7)
35*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32U_24, 8)
36*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32U_20, 9)
37*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32U_16, 10)
38*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24, 11)
39*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24_20, 12)
40*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24_16, 13)
41*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24U, 14)
42*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24U_20, 15)
43*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24U_16, 16)
44*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16, 17)
45*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16U, 18)
46*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16S_32, 19)
47*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16S_28, 20)
48*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16S_24, 21)
49*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16S_20, 22)
50*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16S, 23)
51*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8, 24)
52*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8U, 25)
53*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8Z_32, 26)
54*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8Z_28, 27)
55*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8Z_24, 28)
56*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8Z_20, 29)
57*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR8Z_16, 30)
58*fae548d3Szrj   RELOC_NUMBER (R_H8_PCREL16, 31)
59*fae548d3Szrj   RELOC_NUMBER (R_H8_PCREL8, 32)
60*fae548d3Szrj   RELOC_NUMBER (R_H8_BPOS, 33)
61*fae548d3Szrj   FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34)
62*fae548d3Szrj   FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58)
63*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16A8, 59)
64*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR16R8, 60)
65*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24A8, 61)
66*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR24R8, 62)
67*fae548d3Szrj   RELOC_NUMBER (R_H8_DIR32A16, 63)
68*fae548d3Szrj   RELOC_NUMBER (R_H8_DISP32A16, 64)
69*fae548d3Szrj   RELOC_NUMBER (R_H8_ABS32, 65)
70*fae548d3Szrj   RELOC_NUMBER (R_H8_ABS32A16, 127)
71*fae548d3Szrj   RELOC_NUMBER (R_H8_SYM, 128)
72*fae548d3Szrj   RELOC_NUMBER (R_H8_OPneg, 129)
73*fae548d3Szrj   RELOC_NUMBER (R_H8_OPadd, 130)
74*fae548d3Szrj   RELOC_NUMBER (R_H8_OPsub, 131)
75*fae548d3Szrj   RELOC_NUMBER (R_H8_OPmul, 132)
76*fae548d3Szrj   RELOC_NUMBER (R_H8_OPdiv, 133)
77*fae548d3Szrj   RELOC_NUMBER (R_H8_OPshla, 134)
78*fae548d3Szrj   RELOC_NUMBER (R_H8_OPshra, 135)
79*fae548d3Szrj   RELOC_NUMBER (R_H8_OPsctsize, 136)
80*fae548d3Szrj   RELOC_NUMBER (R_H8_OPhword, 137)
81*fae548d3Szrj   RELOC_NUMBER (R_H8_OPlword, 138)
82*fae548d3Szrj   RELOC_NUMBER (R_H8_OPhigh, 139)
83*fae548d3Szrj   RELOC_NUMBER (R_H8_OPlow, 140)
84*fae548d3Szrj   RELOC_NUMBER (R_H8_OPscttop, 141)
85*fae548d3Szrj END_RELOC_NUMBERS (R_H8_max)
86*fae548d3Szrj 
87*fae548d3Szrj /* Machine variant if we know it.  This field was invented at Cygnus,
88*fae548d3Szrj    but it is hoped that other vendors will adopt it.  If some standard
89*fae548d3Szrj    is developed, this code should be changed to follow it. */
90*fae548d3Szrj 
91*fae548d3Szrj #define EF_H8_MACH		0x00FF0000
92*fae548d3Szrj 
93*fae548d3Szrj #define E_H8_MACH_H8300		0x00800000
94*fae548d3Szrj #define E_H8_MACH_H8300H	0x00810000
95*fae548d3Szrj #define E_H8_MACH_H8300S	0x00820000
96*fae548d3Szrj #define E_H8_MACH_H8300HN	0x00830000
97*fae548d3Szrj #define E_H8_MACH_H8300SN	0x00840000
98*fae548d3Szrj #define E_H8_MACH_H8300SX	0x00850000
99*fae548d3Szrj #define E_H8_MACH_H8300SXN	0x00860000
100*fae548d3Szrj 
101*fae548d3Szrj #endif
102