Blame include/elf/xgate.h

Packit bbfece
/* XGATE ELF support for BFD.
Packit bbfece
   Copyright (C) 2010-2018 Free Software Foundation, Inc.
Packit bbfece
Packit bbfece
   This file is part of BFD, the Binary File Descriptor library.
Packit bbfece
Packit bbfece
   This program is free software; you can redistribute it and/or modify
Packit bbfece
   it under the terms of the GNU General Public License as published by
Packit bbfece
   the Free Software Foundation; either version 2 of the License, or
Packit bbfece
   (at your option) any later version.
Packit bbfece
Packit bbfece
   This program is distributed in the hope that it will be useful,
Packit bbfece
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit bbfece
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit bbfece
   GNU General Public License for more details.
Packit bbfece
Packit bbfece
   You should have received a copy of the GNU General Public License
Packit bbfece
   along with this program; if not, write to the Free Software Foundation,
Packit bbfece
   Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
Packit bbfece
Packit bbfece
#ifndef _ELF_XGATE_H
Packit bbfece
#define _ELF_XGATE_H
Packit bbfece
Packit bbfece
#include "elf/reloc-macros.h"
Packit bbfece
Packit bbfece
/* Relocation types.  */
Packit bbfece
START_RELOC_NUMBERS (elf_xgate_reloc_type)
Packit bbfece
  RELOC_NUMBER (R_XGATE_NONE, 0)
Packit bbfece
  RELOC_NUMBER (R_XGATE_8, 1)
Packit bbfece
  RELOC_NUMBER (R_XGATE_PCREL_8, 2)
Packit bbfece
  RELOC_NUMBER (R_XGATE_16, 3)
Packit bbfece
  RELOC_NUMBER (R_XGATE_32, 4)
Packit bbfece
  RELOC_NUMBER (R_XGATE_PCREL_16, 5)
Packit bbfece
  /* These are GNU extensions to enable C++ vtable garbage collection.  */
Packit bbfece
  RELOC_NUMBER (R_XGATE_GNU_VTINHERIT, 6)
Packit bbfece
  RELOC_NUMBER (R_XGATE_GNU_VTENTRY, 7)
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_XGATE_24, 8)
Packit bbfece
  RELOC_NUMBER (R_XGATE_LO16, 9)
Packit bbfece
  RELOC_NUMBER (R_XGATE_GPAGE, 10)
Packit bbfece
  RELOC_NUMBER (R_XGATE_PCREL_9, 11)
Packit bbfece
  RELOC_NUMBER (R_XGATE_PCREL_10, 12)
Packit bbfece
  RELOC_NUMBER (R_XGATE_IMM8_LO, 13)
Packit bbfece
  RELOC_NUMBER (R_XGATE_IMM8_HI, 14)
Packit bbfece
  RELOC_NUMBER (R_XGATE_IMM3, 15)
Packit bbfece
  RELOC_NUMBER (R_XGATE_IMM4, 16)
Packit bbfece
  RELOC_NUMBER (R_XGATE_IMM5, 17)
Packit bbfece
Packit bbfece
  /* GNU extension for linker relaxation.
Packit bbfece
     Mark beginning of a jump instruction (any form).  */
Packit bbfece
  RELOC_NUMBER (R_XGATE_RL_JUMP, 18)
Packit bbfece
Packit bbfece
  /* Mark beginning of Gcc relaxation group instruction.  */
Packit bbfece
  RELOC_NUMBER (R_XGATE_RL_GROUP, 19)
Packit bbfece
END_RELOC_NUMBERS (R_XGATE_max)
Packit bbfece
Packit bbfece
/* Processor specific flags for the ELF header e_flags field.  */
Packit bbfece
Packit bbfece
/* ABI identification.  */
Packit bbfece
#define EF_XGATE_ABI  0x00000000F
Packit bbfece
Packit bbfece
/* Integers are 32-bit long.  */
Packit bbfece
#define E_XGATE_I32   0x000000001
Packit bbfece
Packit bbfece
/* Doubles are 64-bit long.  */
Packit bbfece
#define E_XGATE_F64   0x000000002
Packit bbfece
Packit bbfece
#define EF_XGATE_MACH_MASK  0xF0
Packit bbfece
Packit bbfece
#define EF_XGATE_MACH       0x80 /* XGATE microcontroller.  */
Packit bbfece
Packit bbfece
#define E_M68HCS12X_GLOBAL  0x100
Packit bbfece
Packit bbfece
/* Identify interrupt handlers.  This is used by the debugger to
Packit bbfece
   correctly compute the stack frame.  */
Packit bbfece
#define STO_XGATE_INTERRUPT 0x40
Packit bbfece
     
Packit bbfece
#endif