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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gas/] [doc/] [c-rx.texi] - Blame information for rev 241

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

Line No. Rev Author Line
1 179 jshamlet
@c Copyright 2008, 2009, 2011
2
@c Free Software Foundation, Inc.
3
@c This is part of the GAS manual.
4
@c For copying conditions, see the file as.texinfo.
5
@ifset GENERIC
6
@page
7
@node RX-Dependent
8
@chapter RX Dependent Features
9
@end ifset
10
@ifclear GENERIC
11
@node Machine Dependencies
12
@chapter RX Dependent Features
13
@end ifclear
14
 
15
@cindex RX support
16
@menu
17
* RX-Opts::                   RX Assembler Command Line Options
18
* RX-Modifiers::              Symbolic Operand Modifiers
19
* RX-Directives::             Assembler Directives
20
* RX-Float::                  Floating Point
21
* RX-Syntax::                 Syntax
22
@end menu
23
 
24
@node RX-Opts
25
@section RX Options
26
@cindex options, RX
27
@cindex RX options
28
 
29
The Renesas RX port of @code{@value{AS}} has a few target specfic
30
command line options:
31
 
32
@table @code
33
 
34
@cindex @samp{-m32bit-doubles}
35
@item -m32bit-doubles
36
This option controls the ABI and indicates to use a 32-bit float ABI.
37
It has no effect on the assembled instructions, but it does influence
38
the behaviour of the @samp{.double} pseudo-op.
39
This is the default.
40
 
41
@cindex @samp{-m64bit-doubles}
42
@item -m64bit-doubles
43
This option controls the ABI and indicates to use a 64-bit float ABI.
44
It has no effect on the assembled instructions, but it does influence
45
the behaviour of the @samp{.double} pseudo-op.
46
 
47
@cindex @samp{-mbig-endian}
48
@item -mbig-endian
49
This option controls the ABI and indicates to use a big-endian data
50
ABI.  It has no effect on the assembled instructions, but it does
51
influence the behaviour of the @samp{.short}, @samp{.hword}, @samp{.int},
52
@samp{.word}, @samp{.long}, @samp{.quad} and @samp{.octa} pseudo-ops.
53
 
54
@cindex @samp{-mlittle-endian}
55
@item -mlittle-endian
56
This option controls the ABI and indicates to use a little-endian data
57
ABI.  It has no effect on the assembled instructions, but it does
58
influence the behaviour of the @samp{.short}, @samp{.hword}, @samp{.int},
59
@samp{.word}, @samp{.long}, @samp{.quad} and @samp{.octa} pseudo-ops.
60
This is the default.
61
 
62
@cindex @samp{-muse-conventional-section-names}
63
@item -muse-conventional-section-names
64
This option controls the default names given to the code (.text),
65
initialised data (.data) and uninitialised data sections (.bss).
66
 
67
@cindex @samp{-muse-renesas-section-names}
68
@item -muse-renesas-section-names
69
This option controls the default names given to the code (.P),
70
initialised data (.D_1) and uninitialised data sections (.B_1).
71
This is the default.
72
 
73
@cindex @samp{-msmall-data-limit}
74
@item -msmall-data-limit
75
This option tells the assembler that the small data limit feature of
76
the RX port of GCC is being used.  This results in the assembler
77
generating an undefined reference to a symbol called @code{__gp} for
78
use by the relocations that are needed to support the small data limit
79
feature.   This option is not enabled by default as it would otherwise
80
pollute the symbol table.
81
 
82
@cindex @samp{-mpid}
83
@item -mpid
84
This option tells the assembler that the position independent data of the
85
RX port of GCC is being used.  This results in the assembler
86
generating an undefined reference to a symbol called @code{__pid_base},
87
and also setting the RX_PID flag bit in the e_flags field of the ELF
88
header of the object file.
89
 
90
@cindex @samp{-mint-register}
91
@item -mint-register=@var{num}
92
This option tells the assembler how many registers have been reserved
93
for use by interrupt handlers.  This is needed in order to compute the
94
correct values for the @code{%gpreg} and @code{%pidreg} meta registers.
95
 
96
@end table
97
 
98
@node RX-Modifiers
99
@section Symbolic Operand Modifiers
100
 
101
@cindex RX modifiers
102
@cindex syntax, RX
103
@cindex %gp
104
 
105
The assembler supports one modifier when using symbol addresses
106
in RX instruction operands.  The general syntax is the following:
107
 
108
@smallexample
109
%gp(symbol)
110
@end smallexample
111
 
112
The modifier returns the offset from the @var{__gp} symbol to the
113
specified symbol as a 16-bit value.  The intent is that this offset
114
should be used in a register+offset move instruction when generating
115
references to small data.  Ie, like this:
116
 
117
@smallexample
118
  mov.W  %gp(_foo)[%gpreg], r1
119
@end smallexample
120
 
121
The assembler also supports two meta register names which can be used
122
to refer to registers whose values may not be known to the
123
programmer.  These meta register names are:
124
 
125
@table @code
126
 
127
@cindex @samp{%gpreg}
128
@item %gpreg
129
The small data address register.
130
 
131
@cindex @samp{%pidreg}
132
@item %pidreg
133
The PID base address register.
134
 
135
@end table
136
 
137
Both registers normally have the value r13, but this can change if
138
some registers have been reserved for use by interrupt handlers or if
139
both the small data limit and position independent data features are
140
being used at the same time.
141
 
142
@node RX-Directives
143
@section Assembler Directives
144
 
145
@cindex assembler directives, RX
146
@cindex RX assembler directives
147
 
148
The RX version of @code{@value{AS}} has the following specific
149
assembler directives:
150
 
151
@table @code
152
 
153
@item .3byte
154
@cindex assembler directive .3byte, RX
155
@cindex RX assembler directive .3byte
156
Inserts a 3-byte value into the output file at the current location.
157
 
158
@end table
159
 
160
@node RX-Float
161
@section Floating Point
162
 
163
@cindex floating point, RX
164
@cindex RX floating point
165
 
166
The floating point formats generated by directives are these.
167
 
168
@table @code
169
@cindex @code{float} directive, RX
170
 
171
@item .float
172
@code{Single} precision (32-bit) floating point constants.
173
 
174
@cindex @code{double} directive, RX
175
@item .double
176
If the @option{-m64bit-doubles} command line option has been specified
177
then then @code{double} directive generates @code{double} precision
178
(64-bit) floating point constants, otherwise it generates
179
@code{single} precision (32-bit) floating point constants.  To force
180
the generation of 64-bit floating point constants used the @code{dc.d}
181
directive instead.
182
 
183
@end table
184
 
185
@node RX-Syntax
186
@section Syntax for the RX
187
@menu
188
* RX-Chars::                Special Characters
189
@end menu
190
 
191
@node RX-Chars
192
@subsection Special Characters
193
 
194
@cindex line comment character, RX
195
@cindex RX line comment character
196
The presence of a @samp{;} appearing anywhere on a line indicates the
197
start of a comment that extends to the end of that line.
198
 
199
If a @samp{#} appears as the first character of a line then the whole
200
line is treated as a comment, but in this case the line can also be a
201
logical line number directive (@pxref{Comments}) or a preprocessor
202
control command (@pxref{Preprocessing}).
203
 
204
@cindex line separator, RX
205
@cindex statement separator, RX
206
@cindex RX line separator
207
The @samp{!} character can be used to separate statements on the same
208
line.

powered by: WebSVN 2.1.0

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