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