source: trunk/binutils/gas/config/tc-v850.h@ 2562

Last change on this file since 2562 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 3.9 KB
Line 
1/* tc-v850.h -- Header file for tc-v850.c.
2 Copyright 1996, 1997, 1998, 2000, 2001, 2002
3 Free Software Foundation, Inc.
4
5 This file is part of GAS, the GNU Assembler.
6
7 GAS is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11
12 GAS is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GAS; see the file COPYING. If not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
21
22#define TC_V850
23
24#include "elf/v850.h"
25
26#define TARGET_BYTES_BIG_ENDIAN 0
27
28#ifndef BFD_ASSEMBLER
29 #error V850 support requires BFD_ASSEMBLER
30#endif
31
32/* The target BFD architecture. */
33#define TARGET_ARCH bfd_arch_v850
34
35/* The target BFD format. */
36#define TARGET_FORMAT "elf32-v850"
37
38#define md_operand(x)
39
40#define tc_fix_adjustable(FIX) v850_fix_adjustable (FIX)
41extern bfd_boolean v850_fix_adjustable PARAMS ((struct fix *));
42
43#define TC_FORCE_RELOCATION(FIX) v850_force_relocation(FIX)
44extern int v850_force_relocation PARAMS ((struct fix *));
45
46#ifdef OBJ_ELF
47/* Values passed to md_apply_fix3 don't include the symbol value. */
48#define MD_APPLY_SYM_VALUE(FIX) 0
49#endif
50
51/* Permit temporary numeric labels. */
52#define LOCAL_LABELS_FB 1
53
54#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs. */
55
56/* We don't need to handle .word strangely. */
57#define WORKING_DOT_WORD
58
59#define md_number_to_chars number_to_chars_littleendian
60
61/* We need to handle lo(), hi(), etc etc in .hword, .word, etc
62 directives, so we have to parse "cons" expressions ourselves. */
63#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) parse_cons_expression_v850 (EXP)
64extern void parse_cons_expression_v850 PARAMS ((expressionS *));
65
66#define TC_CONS_FIX_NEW cons_fix_new_v850
67extern void cons_fix_new_v850 PARAMS ((fragS *, int, int, expressionS *));
68
69#define TC_GENERIC_RELAX_TABLE md_relax_table
70extern const struct relax_type md_relax_table[];
71
72/* When relaxing, we need to generate
73 relocations for alignment directives. */
74#define HANDLE_ALIGN(frag) v850_handle_align (frag)
75extern void v850_handle_align PARAMS ((fragS *));
76
77/* This section must be in the small data area (pointed to by GP). */
78#define SHF_V850_GPREL 0x10000000
79/* This section must be in the tiny data area (pointed to by EP). */
80#define SHF_V850_EPREL 0x20000000
81/* This section must be in the zero data area (pointed to by R0). */
82#define SHF_V850_R0REL 0x40000000
83
84#define ELF_TC_SPECIAL_SECTIONS \
85 { ".sdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_GPREL }, \
86 { ".rosdata", SHT_PROGBITS, SHF_ALLOC + SHF_V850_GPREL }, \
87 { ".sbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_GPREL }, \
88 { ".scommon", SHT_V850_SCOMMON, SHF_ALLOC + SHF_WRITE + SHF_V850_GPREL }, \
89 { ".tdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_EPREL }, \
90 { ".tbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_EPREL }, \
91 { ".tcommon", SHT_V850_TCOMMON, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL }, \
92 { ".zdata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL }, \
93 { ".rozdata", SHT_PROGBITS, SHF_ALLOC + SHF_V850_R0REL }, \
94 { ".zbss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL }, \
95 { ".zcommon", SHT_V850_ZCOMMON, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL }, \
96 { ".call_table_data", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, \
97 { ".call_table_text", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_EXECINSTR },
98
99#define MD_PCREL_FROM_SECTION(FIX, SEC) v850_pcrel_from_section (FIX, SEC)
100extern long v850_pcrel_from_section PARAMS ((struct fix *, asection *));
101
102#define DWARF2_LINE_MIN_INSN_LENGTH 2
Note: See TracBrowser for help on using the repository browser.