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