Back to index

cell-binutils  2.17cvs20070401
h8.h
Go to the documentation of this file.
00001 /* H8300/h8500 ELF support for BFD.
00002    Copyright 2001, 2003 Free Software Foundation, Inc.
00003 
00004    This file is part of BFD, the Binary File Descriptor library.
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License as published by
00008    the Free Software Foundation; either version 2 of the License, or
00009    (at your option) any later version.
00010 
00011    This program is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014    GNU General Public License for more details.
00015 
00016    You should have received a copy of the GNU General Public License
00017    along with this program; if not, write to the Free Software Foundation,
00018    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
00019 
00020 #ifndef _ELF_H8_H
00021 #define _ELF_H8_H
00022 
00023 #include "elf/reloc-macros.h"
00024 
00025 /* Relocations.  */
00026 /* Relocations 59..63 are GNU extensions.  */
00027 START_RELOC_NUMBERS (elf_h8_reloc_type)
00028   RELOC_NUMBER (R_H8_NONE, 0)
00029   RELOC_NUMBER (R_H8_DIR32, 1)
00030   RELOC_NUMBER (R_H8_DIR32_28, 2)
00031   RELOC_NUMBER (R_H8_DIR32_24, 3)
00032   RELOC_NUMBER (R_H8_DIR32_16, 4)
00033   RELOC_NUMBER (R_H8_DIR32U, 6)
00034   RELOC_NUMBER (R_H8_DIR32U_28, 7)
00035   RELOC_NUMBER (R_H8_DIR32U_24, 8)
00036   RELOC_NUMBER (R_H8_DIR32U_20, 9)
00037   RELOC_NUMBER (R_H8_DIR32U_16, 10)
00038   RELOC_NUMBER (R_H8_DIR24, 11)
00039   RELOC_NUMBER (R_H8_DIR24_20, 12)
00040   RELOC_NUMBER (R_H8_DIR24_16, 13)
00041   RELOC_NUMBER (R_H8_DIR24U, 14)
00042   RELOC_NUMBER (R_H8_DIR24U_20, 15)
00043   RELOC_NUMBER (R_H8_DIR24U_16, 16)
00044   RELOC_NUMBER (R_H8_DIR16, 17)
00045   RELOC_NUMBER (R_H8_DIR16U, 18)
00046   RELOC_NUMBER (R_H8_DIR16S_32, 19)
00047   RELOC_NUMBER (R_H8_DIR16S_28, 20)
00048   RELOC_NUMBER (R_H8_DIR16S_24, 21)
00049   RELOC_NUMBER (R_H8_DIR16S_20, 22)
00050   RELOC_NUMBER (R_H8_DIR16S, 23)
00051   RELOC_NUMBER (R_H8_DIR8, 24)
00052   RELOC_NUMBER (R_H8_DIR8U, 25)
00053   RELOC_NUMBER (R_H8_DIR8Z_32, 26)
00054   RELOC_NUMBER (R_H8_DIR8Z_28, 27)
00055   RELOC_NUMBER (R_H8_DIR8Z_24, 28)
00056   RELOC_NUMBER (R_H8_DIR8Z_20, 29)
00057   RELOC_NUMBER (R_H8_DIR8Z_16, 30)
00058   RELOC_NUMBER (R_H8_PCREL16, 31)
00059   RELOC_NUMBER (R_H8_PCREL8, 32)
00060   RELOC_NUMBER (R_H8_BPOS, 33)
00061   FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34)
00062   FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58)
00063   RELOC_NUMBER (R_H8_DIR16A8, 59)
00064   RELOC_NUMBER (R_H8_DIR16R8, 60)
00065   RELOC_NUMBER (R_H8_DIR24A8, 61)
00066   RELOC_NUMBER (R_H8_DIR24R8, 62)
00067   RELOC_NUMBER (R_H8_DIR32A16, 63)
00068   RELOC_NUMBER (R_H8_ABS32, 65)
00069   RELOC_NUMBER (R_H8_ABS32A16, 127)
00070   RELOC_NUMBER (R_H8_SYM, 128)
00071   RELOC_NUMBER (R_H8_OPneg, 129)
00072   RELOC_NUMBER (R_H8_OPadd, 130)
00073   RELOC_NUMBER (R_H8_OPsub, 131)
00074   RELOC_NUMBER (R_H8_OPmul, 132)
00075   RELOC_NUMBER (R_H8_OPdiv, 133)
00076   RELOC_NUMBER (R_H8_OPshla, 134)
00077   RELOC_NUMBER (R_H8_OPshra, 135)
00078   RELOC_NUMBER (R_H8_OPsctsize, 136)
00079   RELOC_NUMBER (R_H8_OPhword, 137)
00080   RELOC_NUMBER (R_H8_OPlword, 138)
00081   RELOC_NUMBER (R_H8_OPhigh, 139)
00082   RELOC_NUMBER (R_H8_OPlow, 140)
00083   RELOC_NUMBER (R_H8_OPscttop, 141)
00084 END_RELOC_NUMBERS (R_H8_max)
00085 
00086 /* Machine variant if we know it.  This field was invented at Cygnus,
00087    but it is hoped that other vendors will adopt it.  If some standard
00088    is developed, this code should be changed to follow it. */
00089 
00090 #define EF_H8_MACH          0x00FF0000
00091 
00092 #define E_H8_MACH_H8300            0x00800000
00093 #define E_H8_MACH_H8300H    0x00810000
00094 #define E_H8_MACH_H8300S    0x00820000
00095 #define E_H8_MACH_H8300HN   0x00830000
00096 #define E_H8_MACH_H8300SN   0x00840000
00097 #define E_H8_MACH_H8300SX   0x00850000
00098 #define E_H8_MACH_H8300SXN  0x00860000
00099 
00100 #endif