PR gas/13224
[deliverable/binutils-gdb.git] / gas / config / tc-mcore.h
CommitLineData
252b5132
RH
1/* This file is tc-mcore.h
2
ec2655a6 3 Copyright 1999, 2000, 2001, 2002, 2003, 2005, 2007
ae6063d4 4 Free Software Foundation, Inc.
252b5132
RH
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
bec50466 19 along with GAS; see the file COPYING. If not, write to the
4b4da160
NC
20 Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21 02110-1301, USA. */
252b5132
RH
22
23#ifndef TC_MCORE
24#define TC_MCORE 1
25
252b5132 26#define TARGET_ARCH bfd_arch_mcore
829ce307
NC
27/* Used to initialise target_big_endian. */
28#define TARGET_BYTES_BIG_ENDIAN 0
252b5132 29
252b5132
RH
30#define IGNORE_NONSTANDARD_ESCAPES
31
252b5132
RH
32/* Some pseudo-op semantic extensions. */
33#define PSEUDO_LCOMM_OPTIONAL_ALIGN
34
ec2655a6 35#define LISTING_HEADER "M.CORE GAS"
252b5132
RH
36#define LISTING_LHS_CONT_LINES 4
37
252b5132
RH
38/* We want local label support. */
39#define LOCAL_LABELS_FB 1
a75214e5 40
252b5132
RH
41extern const struct relax_type md_relax_table[];
42#define TC_GENERIC_RELAX_TABLE md_relax_table
43#define md_end md_mcore_end
44
a75214e5 45/* Want the section information too... */
a161fe53 46#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
252b5132 47
252b5132
RH
48#ifdef OBJ_COFF
49
50#define TARGET_FORMAT (target_big_endian ? "pe-mcore-big" : "pe-mcore-little")
51
49309057
ILT
52struct mcore_tc_sy
53{
54 int sy_flags;
55};
56
57#define TC_SYMFIELD_TYPE struct mcore_tc_sy
252b5132 58
f11900d0 59# if defined TE_PE
a161fe53 60# define TC_FORCE_RELOCATION(x) \
ae6063d4 61 ((x)->fx_r_type == BFD_RELOC_RVA || generic_force_reloc (x))
f11900d0
NC
62# endif
63
252b5132
RH
64#endif /* OBJ_COFF */
65
252b5132
RH
66#ifdef OBJ_ELF
67
68#define TARGET_FORMAT (target_big_endian ? "elf32-mcore-big" : "elf32-mcore-little")
69
a161fe53
AM
70/* No shared lib support, so we don't need to ensure externally
71 visible symbols can be overridden. */
72#define EXTERN_FORCE_RELOC 0
73
252b5132
RH
74/* When relaxing, we need to emit various relocs we otherwise wouldn't. */
75#define TC_FORCE_RELOCATION(fix) mcore_force_relocation (fix)
252b5132 76
a161fe53 77#define tc_fix_adjustable(FIX) mcore_fix_adjustable (FIX)
252b5132 78
55cf6793 79/* Values passed to md_apply_fix don't include the symbol value. */
a161fe53
AM
80#define MD_APPLY_SYM_VALUE(FIX) 0
81
252b5132
RH
82#endif /* OBJ_ELF */
83
84#ifndef TARGET_FORMAT
85# error No target format specified.
86#endif
87
252b5132 88#include "write.h" /* For definition of fixS */
a75214e5 89
ea1562b3
NC
90extern void md_mcore_end (void);
91extern long md_pcrel_from_section (fixS *, segT);
92extern arelent * tc_gen_reloc (asection *, fixS *);
93extern int mcore_force_relocation (fixS *);
94extern bfd_boolean mcore_fix_adjustable (fixS *);
252b5132
RH
95
96#endif /* TC_MCORE */
This page took 0.498778 seconds and 4 git commands to generate.