OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-binutils/] [binutils-2.19.1/] [gas/] [config/] [tc-scarts_32.h] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 jlechner
/* tc-scarts_32.h -- Header file for tc-scarts_32.c.
2
   Copyright 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
3
   Contributed by Martin Walter <mwalter@opencores.org>
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 3, 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
19
   the Free Software Foundation, 51 Franklin Street - Fifth Floor,
20
   Boston, MA 02110-1301, USA.  */
21
 
22
/* By convention, you should define this macro in the '.h' file. For example,
23
   'tc-m68k.h' defines TC_M68K. You might have to use this if it is necessary
24
   to add CPU specific code to the object format file. */
25
#define TC_SCARTS_32
26
 
27
/* A string to use on the header line of a listing. The default value
28
   is simply "GAS LISTING". */
29
#define LISTING_HEADER                  "SCARTS_32 GAS LISTING"
30
 
31
/* This macro is the BFD target name to use when creating the output file.
32
   This will normally depend upon the OBJ_FMT macro. */
33
#define TARGET_FORMAT                   "elf32-scarts_32"
34
 
35
/* This macro is the BFD architecture to pass to bfd_set_arch_mach. */
36
#define TARGET_ARCH                     bfd_arch_scarts_32
37
 
38
/* This macro is the BFD machine number to pass to bfd_set_arch_mach.
39
   If it is not defined, GAS will use 0. */
40
extern unsigned long scarts_32_mach;
41
#define TARGET_MACH                     (scarts_32_mach)
42
 
43
/* You should define this macro to be non-zero if the target is big endian,
44
   and zero if the target is little endian. */
45
#define TARGET_BYTES_BIG_ENDIAN         0
46
 
47
/* .-foo gets turned into PC relative relocs. */
48
#define DIFF_EXPR_OK                    1
49
 
50
/* Permit temporary numeric labels. */
51
#define LOCAL_LABELS_FB                 1
52
 
53
/* Values passed to md_apply_fix don't include the symbol value.  */
54
#define MD_APPLY_SYM_VALUE(FIX)         0
55
 
56
/* We don't need to handle .word strangely.  */
57
#define WORKING_DOT_WORD
58
 
59
/* GAS will call this for each fixup that passes the TC_VALIDATE_FIX test when
60
   linkrelax is not set. It should store the correct value in the object file.
61
   struct fix *fixP is the fixup md_apply_fix is operating on. valueT *valP is
62
   the value to store into the object files, or at least is the generic code's
63
   best guess. Specifically, *valP is the value of the fixup symbol, perhaps
64
   modified by MD_APPLY_SYM_VALUE, plus fixP->fx_offset (symbol addend), less
65
   MD_PCREL_FROM_SECTION for pc-relative fixups. segT seg is the section the
66
   fix is in. fixup_segment performs a generic overflow check on *valP after
67
   md_apply_fix returns. If the overflow check is relevant for the target
68
   machine, then md_apply_fix should modify *valP, typically to the value
69
   stored in the object file. */
70
#define md_apply_fix                    scarts_32_md_apply_fix
71
 
72
/* This should just call either number_to_chars_bigendian or number_to_chars_
73
   littleendian, whichever is appropriate. On targets like the MIPS which
74
   support options to change the endianness, which function to call is a
75
   runtime decision. On other targets, md_number_to_chars can be a simple
76
   macro. */
77
#define md_number_to_chars              number_to_chars_littleendian
78
 
79
/* GAS will call this to generate a reloc. GAS will pass the resulting reloc to
80
   bfd_install_relocation. This currently works poorly, as bfd_install_relocation
81
   often does the wrong thing, and instances of tc_gen_reloc have been written
82
   to work around the problems, which in turns makes it difficult to fix
83
   bfd_install_relocation. */
84
#define tc_gen_reloc                    gas_cgen_tc_gen_reloc
85
 
86
/* If this macro returns non-zero, it guarantees that a relocation will be emitted
87
   even when the value can be resolved locally, as fixup_segment tries to reduce
88
   the number of relocations emitted. For example, a fixup expression against an
89
   absolute symbol will normally not require a reloc. */
90
 
91
extern int scarts_32_force_relocation (struct fix *);
92
#define TC_FORCE_RELOCATION(FIX) scarts_32_force_relocation(FIX)
93
 
94
/* Call md_pcrel_from_section(), not md_pcrel_from().  */
95
 
96
/* If you define this macro, it should return the position from which the PC
97
   relative adjustment for a PC relative fixup should be made. On many
98
   processors, the base of a PC relative instruction is the next instruction,
99
   so this macro would return the length of an instruction, plus the address of
100
   the PC relative fixup. */
101
extern long md_pcrel_from_section (struct fix *, segT);
102
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.