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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [gas/] [config/] [tc-maxq.h] - Blame information for rev 857

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 julius
/* tc-maxq.h -- Header file for the assembler(MAXQ)
2
 
3
   Copyright 2004, 2005, 2007  Free Software Foundation, Inc.
4
 
5
   Contributed by HCL Technologies Pvt. Ltd.
6
 
7
   Written by Vineet Sharma(vineets@noida.hcltech.com) Inderpreet
8
   S.(inderpreetb@noida.hcltech.com)
9
 
10
   This file is part of GAS.
11
 
12
   GAS is free software; you can redistribute it and/or modify it under the
13
   terms of the GNU General Public License as published by the Free Software
14
   Foundation; either version 3, or (at your option) any later version.
15
 
16
   GAS is distributed in the hope that it will be useful, but WITHOUT ANY
17
   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18
   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
19
   details.
20
 
21
   You should have received a copy of the GNU General Public License along
22
   with GAS; see the file COPYING.  If not, write to the Free Software
23
   Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
24
 
25
#ifndef  _TC_MAXQ_H_
26
#define  _TC_MAXQ_H_
27
 
28
#ifndef NO_RELOC
29
#define NO_RELOC 0
30
#endif
31
 
32
/* `md_short_jump_size' `md_long_jump_size' `md_create_short_jump'
33
   `md_create_long_jump' If `WORKING_DOT_WORD' is defined, GAS will not do
34
   broken word processing (*note Broken words::.).  Otherwise, you should set
35
   `md_short_jump_size' to the size of a short jump (a jump that is just long
36
   enough to jump around a long jmp) and `md_long_jump_size' to the size of a
37
   long jump (a jump that can go anywhere in the function), You should define
38
   `md_create_short_jump' to create a short jump around a long jump, and
39
   define `md_create_long_jump' to create a long jump.  */
40
#define WORKING_DOT_WORD
41
typedef enum _RELOC_ENUM
42
{
43
  MAXQ_WORDDATA = 5,            /* Word+n.  */
44
  MAXQ_LONGDATA = 2,            /* Long+n.  */
45
  MAXQ_INTERSEGMENT = 4,        /* Text to any other segment.  */
46
  MAXQ_SHORTJUMP = BFD_RELOC_16_PCREL_S2,       /* PC Relative.  */
47
  MAXQ_LONGJUMP = 6,            /* Absolute Jump.  */
48
  EXTERNAL_RELOC = 8,
49
  INTERSEGMENT_RELOC
50
}
51
RELOC_ENUM;
52
 
53
#ifndef MAX_STACK
54
#define MAX_STACK 0xf
55
#endif
56
 
57
#ifndef TC_MAXQ20
58
#define TC_MAXQ20 1
59
#endif
60
 
61
#ifndef MAX_OPERAND_SIZE
62
#define MAX_OPERAND_SIZE 255
63
#endif
64
 
65
#ifndef MAXQ_INSTRUCTION_SIZE
66
#define MAXQ_INSTRUCTION_SIZE 2 /* 16 - BITS */
67
#endif
68
 
69
#if MAXQ_INSTRUCTION_SIZE
70
#define MAXQ_OCTETS_PER_BYTE    MAXQ_INSTRUCTION_SIZE
71
#else
72
#define MAXQ_OCTETS_PER_BYTE    OCTETS_PER_BYTE
73
#endif
74
 
75
/* if this macro is defined gas will use this instead of comment_chars.  */
76
#define tc_comments_chars maxq20_comment_chars
77
 
78
#define tc_coff_symbol_emit_hook(a)     ;       /* not used */
79
 
80
#define md_section_align(SEGMENT, SIZE)     (SIZE)
81
 
82
/* Locally defined symbol shoudnot be adjusted to section symbol.  */
83
#define tc_fix_adjustable(FIX) 0
84
 
85
/* This specifies that the target has been defined as little endian -
86
   default.  */
87
#define TARGET_BYTES_BIG_ENDIAN 0
88
 
89
#define MAX_MEM_NAME_SIZE 12
90
#define MAX_REG_NAME_SIZE  7
91
#define MAX_MNEM_SIZE      8
92
 
93
#define END_OF_INSN '\0'
94
 
95
/* This macro is the BFD archetectureto pass to 'bfd_set_arch_mach'.  */
96
#define TARGET_ARCH             bfd_arch_maxq
97
 
98
/* This macro is the BFD machine number to pass to 'bfd_set_arch_mach'.
99
   If not defines GAS will use 0.  */
100
#define TARGET_MACH             maxq20_mach ()
101
extern unsigned long maxq20_mach (void);
102
 
103
#ifndef LEX_AT
104
/* We define this macro to generate a fixup for a data allocation pseudo-op.  */
105
#define TC_CONS_FIX_NEW(FRAG,OFF,LEN,EXP) maxq20_cons_fix_new (FRAG,OFF,LEN,EXP)
106
extern void maxq20_cons_fix_new (fragS *, unsigned int, unsigned int, expressionS *);
107
#endif
108
 
109
/* Define md_number_to_chars as the appropriate standard big endian or This
110
   should just call either `number_to_chars_bigendian' or
111
   `number_to_chars_littleendian', whichever is appropriate.  On targets like
112
   the MIPS which support options to change the endianness, which function to
113
   call is a runtime decision.  On other targets, `md_number_to_chars' can be
114
   a simple macro.  */
115
#define md_number_to_chars maxq_number_to_chars
116
extern void maxq_number_to_chars (char *, valueT, int);
117
 
118
/* If this macro is defined, it is a pointer to a NULL terminated list of
119
   characters which may appear in an operand. GAS already assumes that all
120
   alphanumeric characters, and '$', '.', and '_' may appear in an
121
   operand("symbol_char"in app.c). This macro may be defined to treat
122
   additional characters as appearing in an operand. This affects the way in
123
   which GAS removes whitespaces before passing the string to md_assemble.  */
124
#define tc_symbol_chars_extra_symbol_chars
125
 
126
/* Define away the call to md_operand in the expression parsing code. This is
127
   called whenever the expression parser can't parse the input and gives the
128
   assembler backend a chance to deal with it instead.  */
129
#define md_operand(x)
130
 
131
#define MAX_OPERANDS           2        /* Max operands per instruction.  */
132
#define MAX_IMMEDIATE_OPERANDS 1        /* Max immediate operands per instruction.  */
133
#define MAX_MEMORY_OPERANDS    1        /* Max memory operands per instruction.  */
134
 
135
/* Define the prefix we are using while trying to use an immediate value in
136
   an instruction. e.g move A[0], #03h.  */
137
#define IMMEDIATE_PREFIX '#'
138
 
139
#define ABSOLUTE_PREFIX '@'
140
 
141
/* This here defines the opcode of the nop operation on the MAXQ. We did
142
   declare it here when we tried to fill the align bites with nop's but GAS
143
   only expects nop's to be single byte instruction.  */
144
#define NOP_OPCODE (char)0xDA3A
145
 
146
#define SIZE_OF_PM sizeof(pmodule)      /* Size of the structure.  */
147
 
148
#endif /* TC_MAXQ_H */

powered by: WebSVN 2.1.0

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