Blame include/coff/mipspe.h

Packit bbfece
/* coff information for Windows CE with MIPS VR4111
Packit bbfece
   
Packit bbfece
   Copyright (C) 2000-2018 Free Software Foundation, Inc.
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
Packit bbfece
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
Packit bbfece
   MA 02110-1301, USA.  */
Packit bbfece
Packit bbfece
#define L_LNNO_SIZE 2
Packit bbfece
#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
Packit bbfece
#include "coff/external.h"
Packit bbfece
Packit bbfece
#define MIPS_ARCH_MAGIC_WINCE	0x0166  /* Windows CE - little endian */
Packit bbfece
#define MIPS_PE_MAGIC		0x010b
Packit bbfece
Packit bbfece
#define MIPSBADMAG(x) ((x).f_magic != MIPS_ARCH_MAGIC_WINCE)
Packit bbfece
Packit bbfece
/* define some NT default values */
Packit bbfece
/*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
Packit bbfece
#define NT_SECTION_ALIGNMENT 0x1000
Packit bbfece
#define NT_FILE_ALIGNMENT    0x200
Packit bbfece
#define NT_DEF_RESERVE       0x100000
Packit bbfece
#define NT_DEF_COMMIT        0x1000
Packit bbfece
Packit bbfece
/********************** RELOCATION DIRECTIVES **********************/
Packit bbfece
Packit bbfece
/* The external reloc has an offset field, because some of the reloc
Packit bbfece
   types on the h8 don't have room in the instruction for the entire
Packit bbfece
   offset - eg the strange jump and high page addressing modes.  */
Packit bbfece
Packit bbfece
struct external_reloc
Packit bbfece
{
Packit bbfece
  char r_vaddr[4];
Packit bbfece
  char r_symndx[4];
Packit bbfece
  char r_type[2];
Packit bbfece
};
Packit bbfece
Packit bbfece
#define RELOC struct external_reloc
Packit bbfece
#define RELSZ 10
Packit bbfece
Packit bbfece
/* MIPS PE relocation types. */
Packit bbfece
Packit bbfece
#define	MIPS_R_ABSOLUTE	0 /* ignored */
Packit bbfece
#define	MIPS_R_REFHALF	1
Packit bbfece
#define	MIPS_R_REFWORD	2
Packit bbfece
#define	MIPS_R_JMPADDR	3
Packit bbfece
#define	MIPS_R_REFHI	4 /* PAIR follows */
Packit bbfece
#define	MIPS_R_REFLO	5
Packit bbfece
#define	MIPS_R_GPREL	6
Packit bbfece
#define	MIPS_R_LITERAL	7 /* same as GPREL */
Packit bbfece
#define	MIPS_R_SECTION	10
Packit bbfece
#define	MIPS_R_SECREL	11
Packit bbfece
#define	MIPS_R_SECRELLO	12
Packit bbfece
#define	MIPS_R_SECRELHI	13 /* PAIR follows */
Packit bbfece
#define	MIPS_R_RVA	34 /* 0x22 */
Packit bbfece
#define	MIPS_R_PAIR	37 /* 0x25 - symndx is really a signed 16-bit addend */