2009-01-06 Joel Sherrill <joel.sherrill@oarcorp.com>
[deliverable/binutils-gdb.git] / gas / config / tc-score.h
CommitLineData
1c0d3aa6 1/* tc-score.h -- Score specific file for assembler
ec2655a6 2 Copyright 2006, 2007 Free Software Foundation, Inc.
1c0d3aa6
NC
3 Contributed by:
4 Mei Ligang (ligang@sunnorth.com.cn)
5 Pei-Lin Tsai (pltsai@sunplus.com)
6
7 This file is part of GAS, the GNU Assembler.
8
9 GAS is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
ec2655a6 11 the Free Software Foundation; either version 3, or (at your option)
1c0d3aa6
NC
12 any later version.
13
14 GAS is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with GAS; see the file COPYING. If not, write to the Free
21 Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
22 MA 02110-1301, USA. */
23
24#ifndef TC_SCORE
25#define TC_SCORE
26
27#define TARGET_ARCH bfd_arch_score
28#define WORKING_DOT_WORD
29#define DIFF_EXPR_OK
30#define RELOC_EXPANSION_POSSIBLE
31#define MAX_RELOC_EXPANSION 2
32#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4)
33
34#define md_undefined_symbol(name) NULL
35
36#define TARGET_FORMAT (target_big_endian ? "elf32-bigscore" : "elf32-littlescore")
37
38#define md_relax_frag(segment, fragp, stretch) score_relax_frag (segment, fragp, stretch)
39extern int score_relax_frag (asection *, struct frag *, long);
40
41#define md_frag_check(fragp) score_frag_check (fragp)
42extern void score_frag_check (fragS *);
43
44#define TC_VALIDATE_FIX(FIXP, SEGTYPE, SKIP) score_validate_fix (FIXP)
45extern void score_validate_fix (struct fix *);
46
47#define TC_FORCE_RELOCATION(FIXP) score_force_relocation (FIXP)
48extern int score_force_relocation (struct fix *);
49
50#define tc_fix_adjustable(fixp) score_fix_adjustable (fixp)
51extern bfd_boolean score_fix_adjustable (struct fix *);
52
53#define elf_tc_final_processing score_elf_final_processing
54extern void score_elf_final_processing (void);
55
56struct score_tc_frag_data
57{
58 unsigned int is_insn;
59 struct fix *fixp;
60};
61
62#define TC_FRAG_TYPE struct score_tc_frag_data
63
64#define TC_FRAG_INIT(FRAGP) \
65 do \
66 { \
67 (FRAGP)->tc_frag_data.is_insn = (((FRAGP)->fr_type == rs_machine_dependent) ? 1 : 0); \
68 } \
69 while (0)
70
71#ifdef OBJ_ELF
72#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
73#else
74#define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_"
75#endif
76
77enum score_pic_level
78{
79 NO_PIC,
80 PIC
81};
82
83#endif /*TC_SCORE */
This page took 0.155429 seconds and 4 git commands to generate.