2012-11-09 Nick Clifton <nickc@redhat.com>
[deliverable/binutils-gdb.git] / gas / config / tc-v850.h
CommitLineData
252b5132 1/* tc-v850.h -- Header file for tc-v850.c.
ec2655a6 2 Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006, 2007
29589b0c 3 Free Software Foundation, Inc.
252b5132
RH
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
ec2655a6 9 the Free Software Foundation; either version 3, or (at your option)
252b5132
RH
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
4b4da160
NC
19 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
20 02110-1301, USA. */
252b5132
RH
21
22#define TC_V850
23
29589b0c 24#include "elf/v850.h"
252b5132
RH
25
26#define TARGET_BYTES_BIG_ENDIAN 0
27
252b5132
RH
28/* The target BFD architecture. */
29#define TARGET_ARCH bfd_arch_v850
30
31/* The target BFD format. */
32#define TARGET_FORMAT "elf32-v850"
33
252b5132
RH
34#define md_operand(x)
35
a161fe53 36#define tc_fix_adjustable(FIX) v850_fix_adjustable (FIX)
ea1562b3 37extern bfd_boolean v850_fix_adjustable (struct fix *);
5d430f8b 38
a161fe53 39#define TC_FORCE_RELOCATION(FIX) v850_force_relocation(FIX)
ea1562b3 40extern int v850_force_relocation (struct fix *);
8f36cd18
AO
41
42#ifdef OBJ_ELF
55cf6793 43/* Values passed to md_apply_fix don't include the symbol value. */
a161fe53 44#define MD_APPLY_SYM_VALUE(FIX) 0
8f36cd18 45#endif
02198638 46
252b5132
RH
47/* Permit temporary numeric labels. */
48#define LOCAL_LABELS_FB 1
49
5d430f8b 50#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs. */
252b5132
RH
51
52/* We don't need to handle .word strangely. */
53#define WORKING_DOT_WORD
54
55#define md_number_to_chars number_to_chars_littleendian
81d4177b 56
252b5132
RH
57/* We need to handle lo(), hi(), etc etc in .hword, .word, etc
58 directives, so we have to parse "cons" expressions ourselves. */
59#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) parse_cons_expression_v850 (EXP)
ea1562b3 60extern void parse_cons_expression_v850 (expressionS *);
5d430f8b 61
252b5132 62#define TC_CONS_FIX_NEW cons_fix_new_v850
ea1562b3 63extern void cons_fix_new_v850 (fragS *, int, int, expressionS *);
5d430f8b 64
252b5132 65#define TC_GENERIC_RELAX_TABLE md_relax_table
5d430f8b 66extern const struct relax_type md_relax_table[];
252b5132 67
86aba9db
NC
68/* When relaxing, we need to generate
69 relocations for alignment directives. */
70#define HANDLE_ALIGN(frag) v850_handle_align (frag)
ea1562b3 71extern void v850_handle_align (fragS *);
86aba9db 72
56d0a8a1
NC
73/* We need space in a frag's fixed size to allow for alignment when relaxing. */
74#define TC_FX_SIZE_SLACK(FIX) 2
75
a161fe53 76#define MD_PCREL_FROM_SECTION(FIX, SEC) v850_pcrel_from_section (FIX, SEC)
ea1562b3 77extern long v850_pcrel_from_section (struct fix *, asection *);
a8761a19 78
a8761a19 79#define DWARF2_LINE_MIN_INSN_LENGTH 2
2d034539
NC
80
81/* We need to record the operand involved when a pseudo-reloc is
82 processed so that the resulting value can be inserted correctly. */
83#define TC_FIX_TYPE void *
84#define TC_INIT_FIX_DATA(fixP) (fixP)->tc_fix_data = NULL
This page took 0.727214 seconds and 4 git commands to generate.