Blame include/elf/mep.h

Packit bbfece
/* Toshiba MeP ELF support for BFD.
Packit bbfece
   Copyright (C) 2001-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 3 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_MEP_H
Packit bbfece
#define _ELF_MEP_H
Packit bbfece
Packit bbfece
/* Bits in the sh_flags field of Elf32_Shdr:  */
Packit bbfece
Packit bbfece
#define SHF_MEP_VLIW		0x10000000	/* contains vliw code */
Packit bbfece
Packit bbfece
#include "elf/reloc-macros.h"
Packit bbfece
Packit bbfece
/* Note: The comments in this file are used by bfd/mep-relocs.pl to
Packit bbfece
   build parts of bfd/elf32-mep.c.  */
Packit bbfece
Packit bbfece
/* Relocations.  */
Packit bbfece
START_RELOC_NUMBERS (elf_mep_reloc_type)
Packit bbfece
Packit bbfece
  /* These two must appear first so that they are not processed by bfd/mep-relocs.pl.  */
Packit bbfece
  RELOC_NUMBER (R_MEP_NONE, 0)
Packit bbfece
  RELOC_NUMBER (R_RELC, 1)
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_MEP_8, 2)		/* 7654 3210                               U */
Packit bbfece
  RELOC_NUMBER (R_MEP_16, 3)		/* fedc ba98 7654 3210                     U */
Packit bbfece
  RELOC_NUMBER (R_MEP_32, 4)		/* vuts rqpo nmlk jihg fedc ba98 7654 3210 U */
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_MEP_PCREL8A2, 5)	/* ---- ---- 7654 321-                     S PC-REL */
Packit bbfece
  RELOC_NUMBER (R_MEP_PCREL12A2, 6)	/* ---- ba98 7654 321-                     S PC-REL */
Packit bbfece
  RELOC_NUMBER (R_MEP_PCREL17A2, 7)	/* ---- ---- ---- ---- gfed cba9 8765 4321 S PC-REL */
Packit bbfece
  RELOC_NUMBER (R_MEP_PCREL24A2, 8)	/* ---- -765 4321 ---- nmlk jihg fedc ba98 S PC-REL */
Packit bbfece
  RELOC_NUMBER (R_MEP_PCABS24A2, 9)	/* ---- -765 4321 ---- nmlk jihg fedc ba98 U */
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_MEP_LOW16, 10)	/* ---- ---- ---- ---- fedc ba98 7654 3210 U no-overflow */
Packit bbfece
  RELOC_NUMBER (R_MEP_HI16U, 11)	/* ---- ---- ---- ---- vuts rqpo nmlk jihg U no-overflow */
Packit bbfece
  RELOC_NUMBER (R_MEP_HI16S, 12)	/* ---- ---- ---- ---- vuts rqpo nmlk jihg S no-overflow */
Packit bbfece
  RELOC_NUMBER (R_MEP_GPREL, 13)	/* ---- ---- ---- ---- fedc ba98 7654 3210 S GP-REL*/
Packit bbfece
  RELOC_NUMBER (R_MEP_TPREL, 14)	/* ---- ---- ---- ---- fedc ba98 7654 3210 S TP-REL*/
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_MEP_TPREL7, 15)	/* ---- ---- -654 3210                     U TP-REL */
Packit bbfece
  RELOC_NUMBER (R_MEP_TPREL7A2, 16)	/* ---- ---- -654 321-                     U TP-REL */
Packit bbfece
  RELOC_NUMBER (R_MEP_TPREL7A4, 17)	/* ---- ---- -654 32--                     U TP-REL */
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_MEP_UIMM24, 18)	/* ---- ---- 7654 3210 nmlk jihg fedc ba98 U */
Packit bbfece
  RELOC_NUMBER (R_MEP_ADDR24A4, 19)	/* ---- ---- 7654 32-- nmlk jihg fedc ba98 U */
Packit bbfece
Packit bbfece
  RELOC_NUMBER (R_MEP_GNU_VTINHERIT, 20) /* ---- ---- ---- ----                     U no-overflow */
Packit bbfece
  RELOC_NUMBER (R_MEP_GNU_VTENTRY, 21)   /* ---- ---- ---- ----                     U no-overflow */
Packit bbfece
Packit bbfece
END_RELOC_NUMBERS(R_MEP_max)
Packit bbfece
Packit bbfece
#define	EF_MEP_CPU_MASK		0xff000000	/* specific cpu bits */
Packit bbfece
#define EF_MEP_CPU_MEP          0x00000000	/* generic MEP */
Packit bbfece
#define EF_MEP_CPU_C2   	0x01000000	/* MEP c2 */
Packit bbfece
#define EF_MEP_CPU_C3   	0x02000000	/* MEP c3 */
Packit bbfece
#define EF_MEP_CPU_C4   	0x04000000	/* MEP c4 */
Packit bbfece
/* 5..7 are reseved */
Packit bbfece
#define EF_MEP_CPU_C5   	0x08000000	/* MEP c5 */
Packit bbfece
#define EF_MEP_CPU_H1   	0x10000000	/* MEP h1 */
Packit bbfece
Packit bbfece
#define EF_MEP_COP_MASK		0x00ff0000
Packit bbfece
#define EF_MEP_COP_NONE		0x00000000
Packit bbfece
#define EF_MEP_COP_AVC		0x00010000
Packit bbfece
#define EF_MEP_COP_AVC2		0x00020000
Packit bbfece
#define EF_MEP_COP_FMAX		0x00030000
Packit bbfece
/* 4..5 are reserved.  */
Packit bbfece
#define EF_MEP_COP_IVC2		0x00060000
Packit bbfece
Packit bbfece
#define EF_MEP_LIBRARY		0x00000100	/* Built as a library */
Packit bbfece
Packit bbfece
#define EF_MEP_INDEX_MASK       0x000000ff      /* Configuration index */
Packit bbfece
Packit bbfece
#define EF_MEP_ALL_FLAGS	0xffff01ff
Packit bbfece
Packit bbfece
#endif /* _ELF_MEP_H */