h8.h revision 130561
189857Sobrien/* H8300/h8500 ELF support for BFD. 2130561Sobrien Copyright 2001, 2003 Free Software Foundation, Inc. 389857Sobrien 489857Sobrien This file is part of BFD, the Binary File Descriptor library. 589857Sobrien 689857Sobrien This program is free software; you can redistribute it and/or modify 789857Sobrien it under the terms of the GNU General Public License as published by 889857Sobrien the Free Software Foundation; either version 2 of the License, or 989857Sobrien (at your option) any later version. 1089857Sobrien 1189857Sobrien This program is distributed in the hope that it will be useful, 1289857Sobrien but WITHOUT ANY WARRANTY; without even the implied warranty of 1389857Sobrien MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1489857Sobrien GNU General Public License for more details. 1589857Sobrien 1689857Sobrien You should have received a copy of the GNU General Public License 1789857Sobrien along with this program; if not, write to the Free Software Foundation, 1889857Sobrien Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 1989857Sobrien 2089857Sobrien#ifndef _ELF_H8_H 2189857Sobrien#define _ELF_H8_H 2289857Sobrien 2389857Sobrien#include "elf/reloc-macros.h" 2489857Sobrien 2589857Sobrien/* Relocations. */ 2689857Sobrien/* Relocations 59..63 are GNU extensions. */ 2789857SobrienSTART_RELOC_NUMBERS (elf_h8_reloc_type) 2889857Sobrien RELOC_NUMBER (R_H8_NONE, 0) 2989857Sobrien RELOC_NUMBER (R_H8_DIR32, 1) 3089857Sobrien RELOC_NUMBER (R_H8_DIR32_28, 2) 3189857Sobrien RELOC_NUMBER (R_H8_DIR32_24, 3) 3289857Sobrien RELOC_NUMBER (R_H8_DIR32_16, 4) 3389857Sobrien RELOC_NUMBER (R_H8_DIR32U, 6) 3489857Sobrien RELOC_NUMBER (R_H8_DIR32U_28, 7) 3589857Sobrien RELOC_NUMBER (R_H8_DIR32U_24, 8) 3689857Sobrien RELOC_NUMBER (R_H8_DIR32U_20, 9) 3789857Sobrien RELOC_NUMBER (R_H8_DIR32U_16, 10) 3889857Sobrien RELOC_NUMBER (R_H8_DIR24, 11) 3989857Sobrien RELOC_NUMBER (R_H8_DIR24_20, 12) 4089857Sobrien RELOC_NUMBER (R_H8_DIR24_16, 13) 4189857Sobrien RELOC_NUMBER (R_H8_DIR24U, 14) 4289857Sobrien RELOC_NUMBER (R_H8_DIR24U_20, 15) 4389857Sobrien RELOC_NUMBER (R_H8_DIR24U_16, 16) 4489857Sobrien RELOC_NUMBER (R_H8_DIR16, 17) 4589857Sobrien RELOC_NUMBER (R_H8_DIR16U, 18) 4689857Sobrien RELOC_NUMBER (R_H8_DIR16S_32, 19) 4789857Sobrien RELOC_NUMBER (R_H8_DIR16S_28, 20) 4889857Sobrien RELOC_NUMBER (R_H8_DIR16S_24, 21) 4989857Sobrien RELOC_NUMBER (R_H8_DIR16S_20, 22) 5089857Sobrien RELOC_NUMBER (R_H8_DIR16S, 23) 5189857Sobrien RELOC_NUMBER (R_H8_DIR8, 24) 5289857Sobrien RELOC_NUMBER (R_H8_DIR8U, 25) 5389857Sobrien RELOC_NUMBER (R_H8_DIR8Z_32, 26) 5489857Sobrien RELOC_NUMBER (R_H8_DIR8Z_28, 27) 5589857Sobrien RELOC_NUMBER (R_H8_DIR8Z_24, 28) 5689857Sobrien RELOC_NUMBER (R_H8_DIR8Z_20, 29) 5789857Sobrien RELOC_NUMBER (R_H8_DIR8Z_16, 30) 5889857Sobrien RELOC_NUMBER (R_H8_PCREL16, 31) 5989857Sobrien RELOC_NUMBER (R_H8_PCREL8, 32) 6089857Sobrien RELOC_NUMBER (R_H8_BPOS, 33) 6189857Sobrien FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34) 6289857Sobrien FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58) 6389857Sobrien RELOC_NUMBER (R_H8_DIR16A8, 59) 6489857Sobrien RELOC_NUMBER (R_H8_DIR16R8, 60) 6589857Sobrien RELOC_NUMBER (R_H8_DIR24A8, 61) 6689857Sobrien RELOC_NUMBER (R_H8_DIR24R8, 62) 6789857Sobrien RELOC_NUMBER (R_H8_DIR32A16, 63) 6889857Sobrien RELOC_NUMBER (R_H8_ABS32, 65) 6989857Sobrien RELOC_NUMBER (R_H8_ABS32A16, 127) 7089857Sobrien RELOC_NUMBER (R_H8_SYM, 128) 7189857Sobrien RELOC_NUMBER (R_H8_OPneg, 129) 7289857Sobrien RELOC_NUMBER (R_H8_OPadd, 130) 7389857Sobrien RELOC_NUMBER (R_H8_OPsub, 131) 7489857Sobrien RELOC_NUMBER (R_H8_OPmul, 132) 7589857Sobrien RELOC_NUMBER (R_H8_OPdiv, 133) 7689857Sobrien RELOC_NUMBER (R_H8_OPshla, 134) 7789857Sobrien RELOC_NUMBER (R_H8_OPshra, 135) 7889857Sobrien RELOC_NUMBER (R_H8_OPsctsize, 136) 7989857Sobrien RELOC_NUMBER (R_H8_OPhword, 137) 8089857Sobrien RELOC_NUMBER (R_H8_OPlword, 138) 8189857Sobrien RELOC_NUMBER (R_H8_OPhigh, 139) 8289857Sobrien RELOC_NUMBER (R_H8_OPlow, 140) 8389857Sobrien RELOC_NUMBER (R_H8_OPscttop, 141) 8489857SobrienEND_RELOC_NUMBERS (R_H8_max) 8589857Sobrien 8689857Sobrien/* Machine variant if we know it. This field was invented at Cygnus, 8789857Sobrien but it is hoped that other vendors will adopt it. If some standard 8889857Sobrien is developed, this code should be changed to follow it. */ 8989857Sobrien 9089857Sobrien#define EF_H8_MACH 0x00FF0000 9189857Sobrien 9289857Sobrien#define E_H8_MACH_H8300 0x00800000 9389857Sobrien#define E_H8_MACH_H8300H 0x00810000 9489857Sobrien#define E_H8_MACH_H8300S 0x00820000 95130561Sobrien#define E_H8_MACH_H8300HN 0x00830000 96130561Sobrien#define E_H8_MACH_H8300SN 0x00840000 97130561Sobrien#define E_H8_MACH_H8300SX 0x00850000 98130561Sobrien#define E_H8_MACH_H8300SXN 0x00860000 9989857Sobrien 10089857Sobrien#endif 101