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