]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/config/tc-h8300.h
* auxv.c (fprint_target_auxv): Handle extended cache data tags.
[thirdparty/binutils-gdb.git] / gas / config / tc-h8300.h
CommitLineData
252b5132 1/* This file is tc-h8300.h
f7e42eb4 2 Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
aa820537 3 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008
252b5132
RH
4 Free Software Foundation, Inc.
5
6 This file is part of GAS, the GNU Assembler.
7
8 GAS is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
ec2655a6 10 the Free Software Foundation; either version 3, or (at your option)
252b5132
RH
11 any later version.
12
13 GAS is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GAS; see the file COPYING. If not, write to the Free
4b4da160
NC
20 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21 02110-1301, USA. */
252b5132 22
252b5132
RH
23#define TC_H8300
24
25#define TARGET_BYTES_BIG_ENDIAN 1
26
7e0de7bf
JL
27#define TARGET_ARCH bfd_arch_h8300
28
dfe0d3fe
JL
29/* Fixup debug sections since we will never relax them. */
30#define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC)
7e0de7bf
JL
31#ifdef OBJ_ELF
32#define TARGET_FORMAT "elf32-h8300"
7ee7b84d
MS
33#define LOCAL_LABEL_PREFIX '.'
34#define LOCAL_LABEL(NAME) (NAME[0] == '.' && NAME[1] == 'L')
35#define FAKE_LABEL_NAME ".L0\001"
7e0de7bf
JL
36#endif
37
a161fe53 38struct fix;
252b5132 39struct internal_reloc;
252b5132
RH
40
41#define WORKING_DOT_WORD
42
8d9cd6b1 43#define COFF_MAGIC ( Smode && Nmode ? 0x8304 : Hmode && Nmode ? 0x8303 : Smode ? 0x8302 : Hmode ? 0x8301 : 0x8300)
252b5132
RH
44#define IGNORE_NONSTANDARD_ESCAPES
45
46#define tc_coff_symbol_emit_hook(a) ; /* not used */
252b5132 47
a161fe53
AM
48/* No shared lib support, so we don't need to ensure externally
49 visible symbols can be overridden. */
50#define EXTERN_FORCE_RELOC 0
51
2c8714f2
NC
52/* Minimum instruction is of 16 bits. */
53#define DWARF2_LINE_MIN_INSN_LENGTH 2
54
36ed2fff
JL
55#ifdef OBJ_ELF
56/* Provide mappings from the original H8 COFF relocation names to
57 their corresponding BFD relocation names. This allows us to use
58 most of tc-h8300.c without modifications for both ELF and COFF
59 ports. */
60#define R_MOV24B1 BFD_RELOC_H8_DIR24A8
61#define R_MOVL1 BFD_RELOC_H8_DIR32A16
62#define R_MOV24B1 BFD_RELOC_H8_DIR24A8
63#define R_MOVL1 BFD_RELOC_H8_DIR32A16
64#define R_RELLONG BFD_RELOC_32
65#define R_MOV16B1 BFD_RELOC_H8_DIR16A8
66#define R_RELWORD BFD_RELOC_16
67#define R_RELBYTE BFD_RELOC_8
68#define R_PCRWORD BFD_RELOC_16_PCREL
69#define R_PCRBYTE BFD_RELOC_8_PCREL
70#define R_JMPL1 BFD_RELOC_H8_DIR24R8
71#define R_MEM_INDIRECT BFD_RELOC_8
72
73/* We do not want to adjust any relocations to make implementation of
74 linker relaxations easier. */
75#define tc_fix_adjustable(FIX) 0
76#endif
77
c2dcd04e 78#define LISTING_HEADER "Renesas H8/300 GAS "
36ed2fff 79#ifndef OBJ_ELF
252b5132 80#define RELOC_32 1234
36ed2fff 81#endif
252b5132
RH
82
83extern int Hmode;
84extern int Smode;
8d9cd6b1 85extern int Nmode;
7ee7b84d 86extern int SXmode;
252b5132
RH
87
88#define md_operand(x)
d31f0f6d
AM
89
90/* This target is buggy, and sets fix size too large. */
91#define TC_FX_SIZE_SLACK(FIX) 1
6fd4f6cc
DD
92
93#define H_TICK_HEX 1