]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/config/tc-dvp.h
* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[thirdparty/binutils-gdb.git] / gas / config / tc-dvp.h
CommitLineData
276dd6ef
DE
1/* tc-dvp.h -- Header file for tc-dvp.c.
2 Copyright (C) 1997, 1998 Free Software Foundation, Inc.
209fb346
DE
3
4 This file is part of GAS, the GNU Assembler.
5
6 GAS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GAS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GAS; see the file COPYING. If not, write to
18 the Free Software Foundation, 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
276dd6ef 21#define TC_DVP
209fb346
DE
22
23#ifndef BFD_ASSEMBLER
24/* leading space so will compile with cc */
276dd6ef 25 #error DVP support requires BFD_ASSEMBLER
209fb346
DE
26#endif
27
276dd6ef 28#define LISTING_HEADER "DVP GAS "
209fb346
DE
29
30/* The target BFD architecture. */
276dd6ef 31#define TARGET_ARCH bfd_arch_mips
209fb346 32
276dd6ef 33#define TARGET_FORMAT "elf32-littlemips"
209fb346
DE
34
35#define TARGET_BYTES_BIG_ENDIAN 0
36
37/* call md_pcrel_from_section, not md_pcrel_from */
38#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC)
39
40/* Permit temporary numeric labels. */
41#define LOCAL_LABELS_FB 1
42
43#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */
44
45/* We don't need to handle .word strangely. */
46#define WORKING_DOT_WORD
47
1554baf3
DE
48/* Handle mpg/direct alignment requirements with relaxation. */
49extern long dvp_relax_frag PARAMS ((fragS *, long));
50#define md_relax_frag(fragP,stretch) dvp_relax_frag ((fragP), (stretch))
209fb346
DE
51
52#define MD_APPLY_FIX3
209fb346 53
1554baf3
DE
54/* Ensure insns at labels have their mach type properly recorded. */
55int force_mach_label PARAMS ((void));
56#define TC_START_LABEL(ch, ptr) (ch == ':' && force_mach_label ())
57
209fb346 58#define TC_HANDLES_FX_DONE
96f5b6b2 59
1554baf3
DE
60/* Record user specified val, for cases where we can't compute the actual
61 value until the end of assembly. */
62#define TC_FIX_TYPE \
63struct { \
64 int type; /* gif_type, or vif type */ \
65 int nregs; /* for gif insns only */ \
66 short wl; short cl; /* for unpack only */ \
67 int user_value; \
68}
69/* Code to initialize it. */
70#define TC_INIT_FIX_DATA(fixP) \
71do { memset (&fixP->tc_fix_data, 0, sizeof (fixP->tc_fix_data)); } while (0)
72
96f5b6b2 73/* Called after parsing a file. */
69312dac
DE
74extern void dvp_parse_done PARAMS ((void));
75#define md_after_pass_hook() dvp_after_pass_hook ()
76
1554baf3 77/* Called for each label. */
69312dac
DE
78extern void dvp_frob_label PARAMS ((struct symbol *));
79#define tc_frob_label(sym) dvp_frob_label (sym)
96f5b6b2 80
1554baf3
DE
81/* Called just before writing the file out. */
82extern void dvp_frob_file PARAMS ((void));
83#define tc_frob_file() dvp_frob_file ()
84
96f5b6b2
JL
85/* Default section names. */
86#define TEXT_SECTION_NAME ".vutext"
87#define DATA_SECTION_NAME ".vudata"
88#define BSS_SECTION_NAME ".vubss"
89
90#define ELF_TC_SPECIAL_SECTIONS \
91 { ".vubss", SHT_NOBITS, SHF_ALLOC + SHF_WRITE }, \
92 { ".vudata", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, \
c3b51879 93 { ".vutext", SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },