Blame include/coff/z80.h

Packit bbfece
/* coff information for Zilog Z80
Packit bbfece
   Copyright (C) 2005-2018 Free Software Foundation, Inc.
Packit bbfece
   Contributed by Arnold Metselaar <arnold_m@operamail.com>
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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
Packit bbfece
Packit bbfece
#define L_LNNO_SIZE 4
Packit bbfece
#include "coff/external.h"
Packit bbfece
Packit bbfece
/* z80 backend does not use dots in section names.  */
Packit bbfece
#undef  _TEXT
Packit bbfece
#define _TEXT "text"
Packit bbfece
#undef  _DATA
Packit bbfece
#define _DATA "data"
Packit bbfece
#undef  _BSS
Packit bbfece
#define _BSS "bss"
Packit bbfece
Packit bbfece
/* Type of cpu is stored in flags.  */
Packit bbfece
#define F_MACHMASK 0xF000
Packit bbfece
Packit bbfece
/* Z80 COFF encodes the section alignment in the section header flags */
Packit bbfece
#define COFF_ALIGN_IN_SECTION_HEADER 1
Packit bbfece
#define COFF_ALIGN_IN_S_FLAGS 1
Packit bbfece
#define F_ALGNMASK 0x0F00
Packit bbfece
/* requires a power-of-two argument */
Packit bbfece
#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X)&0xF)<<8))
Packit bbfece
/* result is a power of two */
Packit bbfece
#define COFF_DECODE_ALIGNMENT(X) (((X)>>8)&0xF)
Packit bbfece
Packit bbfece
#define	Z80MAGIC   0x805A
Packit bbfece
Packit bbfece
#define Z80BADMAG(x) (((x).f_magic != Z80MAGIC))
Packit bbfece
Packit bbfece
/* Relocation directives.  */
Packit bbfece
Packit bbfece
/* This format actually has more bits than we need.  */
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_offset[4];
Packit bbfece
  char r_type[2];
Packit bbfece
  char r_stuff[2];
Packit bbfece
};
Packit bbfece
Packit bbfece
#define RELOC struct external_reloc
Packit bbfece
#define RELSZ 16