Update year range in copyright notice of binutils files
[deliverable/binutils-gdb.git] / gas / config / tc-tic54x.h
CommitLineData
39bec121 1/* tc-tic54x.h -- Header file for tc-tic54x.c
82704155 2 Copyright (C) 1999-2019 Free Software Foundation, Inc.
39bec121
TW
3 Contributed by Timothy Wall (twall@alum.mit.edu)
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)
39bec121
TW
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. */
39bec121
TW
21
22#ifndef _TC_TIC54X_H_
23#define _TC_TIC54X_H_
24
25/* select the proper coff format (see obj-coff.h) */
1dab94dd 26#define TC_TIC54X
39bec121
TW
27
28#define TARGET_BYTES_BIG_ENDIAN 0
29#define OCTETS_PER_BYTE_POWER 1
30
31#define TARGET_ARCH bfd_arch_tic54x
39bec121
TW
32
33#define WORKING_DOT_WORD 1
34
35#define MAX_OPERANDS 4
36#define PARALLEL_SEPARATOR '|'
37#define LABELS_WITHOUT_COLONS 1
1dab94dd 38/* accept 0FFFFh, 1010b, etc. */
39bec121
TW
39#define NUMBERS_WITH_SUFFIX 1
40/* $ is section program counter */
41#define DOLLAR_DOT 1
42/* accept parallel lines like
1dab94dd 43 add #1,a || ld #1, b
39bec121
TW
44 (may also be split across lines)
45*/
46#define DOUBLEBAR_PARALLEL 1
47/* affects preprocessor */
48#define KEEP_WHITE_AROUND_COLON 1
49
39bec121
TW
50struct bit_info
51{
52 segT seg;
53#define TYPE_SPACE 0
54#define TYPE_BES 1
55#define TYPE_FIELD 2
56 int type;
57 symbolS *sym;
58 valueT value;
59 char *where;
60 int offset;
61};
62
63/* We sometimes need to keep track of bit offsets within words */
64#define TC_FRAG_TYPE int
814f6641 65#define TC_FRAG_INIT(FRAGP) do {(FRAGP)->tc_frag_data = 0;}while (0)
39bec121
TW
66
67/* tell GAS whether the given token is indeed a code label */
2e57ce7b
AM
68#define TC_START_LABEL_WITHOUT_COLON(NUL_CHAR, NEXT_CHAR) \
69 tic54x_start_label(NUL_CHAR, NEXT_CHAR)
70extern int tic54x_start_label (int, int);
39bec121
TW
71
72/* custom handling for relocations in cons expressions */
62ebcb5c
AM
73#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP, RELOC) \
74 tic54x_cons_fix_new (FRAG, OFF, LEN, EXP, RELOC)
75extern void tic54x_cons_fix_new (fragS *, int, int, expressionS *,
76 bfd_reloc_code_real_type);
39bec121
TW
77
78/* Define md_number_to_chars as the appropriate standard big endian or
79 little endian function. Mostly littleendian, but longwords and floats are
80 stored MS word first.
81*/
82
83#define md_number_to_chars tic54x_number_to_chars
6e917903 84extern void tic54x_number_to_chars (char *, valueT, int);
39bec121 85#define tc_adjust_symtab() tic54x_adjust_symtab()
6e917903 86extern void tic54x_adjust_symtab (void);
39bec121 87#define tc_unrecognized_line(ch) tic54x_unrecognized_line(ch)
6e917903 88extern int tic54x_unrecognized_line (int ch);
9497f5ac 89#define md_parse_name(s,e,m,c) tic54x_parse_name(s,e)
6e917903 90extern int tic54x_parse_name (char *name, expressionS *e);
39bec121 91#define md_undefined_symbol(s) tic54x_undefined_symbol(s)
6e917903 92extern symbolS *tic54x_undefined_symbol (char *name);
39bec121 93#define md_macro_start() tic54x_macro_start()
6e917903 94extern void tic54x_macro_start (void);
39bec121 95#define md_macro_end() tic54x_macro_end()
6e917903 96extern void tic54x_macro_end (void);
39bec121 97#define md_macro_info(args) tic54x_macro_info(args)
4962e196 98struct macro_struct;
5a49b8ac 99extern void tic54x_macro_info (const struct macro_struct *);
39bec121 100#define tc_frob_label(sym) tic54x_define_label (sym)
5a49b8ac 101extern void tic54x_define_label (symbolS *);
39bec121 102
1dab94dd 103#define md_start_line_hook() tic54x_start_line_hook()
6e917903 104extern void tic54x_start_line_hook (void);
39bec121
TW
105
106#define md_estimate_size_before_relax(f,s) \
107tic54x_estimate_size_before_relax(f,s)
108extern int tic54x_estimate_size_before_relax(fragS *, segT);
109
c842b53a 110#define md_relax_frag(seg, f,s) tic54x_relax_frag(f,s)
39bec121
TW
111extern int tic54x_relax_frag(fragS *, long);
112
113#define md_convert_frag(b,s,f) tic54x_convert_frag(b,s,f)
114extern void tic54x_convert_frag(bfd *, segT, fragS *);
115
1dab94dd 116/* Other things we don't support... */
39bec121
TW
117
118/* Define away the call to md_operand in the expression parsing code.
119 This is called whenever the expression parser can't parse the input
1dab94dd 120 and gives the assembler backend a chance to deal with it instead. */
39bec121
TW
121
122#define md_operand(X)
123
124/* spruce up the listing output */
125#define LISTING_WORD_SIZE 2
126
6e917903
TW
127extern void tic54x_global (int);
128
39bec121 129#endif
This page took 0.813251 seconds and 4 git commands to generate.