Merge branch 'vendor/OPENSSL'
[dragonfly.git] / contrib / binutils-2.22 / gas / doc / c-rx.texi
1 @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 __gp for use by
78 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 @end table
83
84 @node RX-Modifiers
85 @section Symbolic Operand Modifiers
86
87 @cindex RX modifiers
88 @cindex syntax, RX
89
90 The assembler supports several modifiers when using symbol addresses
91 in RX instruction operands.  The general syntax is the following:
92
93 @smallexample
94 %modifier(symbol)
95 @end smallexample
96
97 @table @code
98 @cindex symbol modifiers
99
100 @item %gp
101 @c FIXME: Add documentation here.
102
103 @end table
104
105 @node RX-Directives
106 @section Assembler Directives
107
108 @cindex assembler directives, RX
109 @cindex RX assembler directives
110
111 The RX version of @code{@value{AS}} has the following specific
112 assembler directives:
113
114 @table @code
115
116 @item .3byte
117 @cindex assembler directive .3byte, RX
118 @cindex RX assembler directive .3byte
119 Inserts a 3-byte value into the output file at the current location.
120
121 @end table
122
123 @node RX-Float
124 @section Floating Point
125
126 @cindex floating point, RX
127 @cindex RX floating point
128
129 The floating point formats generated by directives are these.
130
131 @table @code
132 @cindex @code{float} directive, RX
133
134 @item .float
135 @code{Single} precision (32-bit) floating point constants.
136
137 @cindex @code{double} directive, RX
138 @item .double
139 If the @option{-m64bit-doubles} command line option has been specified
140 then then @code{double} directive generates @code{double} precision
141 (64-bit) floating point constants, otherwise it generates
142 @code{single} precision (32-bit) floating point constants.  To force
143 the generation of 64-bit floating point constants used the @code{dc.d}
144 directive instead.
145
146 @end table
147
148 @node RX-Syntax
149 @section Syntax for the RX
150 @menu
151 * RX-Chars::                Special Characters
152 @end menu
153
154 @node RX-Chars
155 @subsection Special Characters
156
157 @cindex line comment character, RX
158 @cindex RX line comment character
159 The presence of a @samp{;} appearing anywhere on a line indicates the
160 start of a comment that extends to the end of that line.
161
162 If a @samp{#} appears as the first character of a line then the whole
163 line is treated as a comment, but in this case the line can also be a
164 logical line number directive (@pxref{Comments}) or a preprocessor
165 control command (@pxref{Preprocessing}).
166
167 @cindex line separator, RX
168 @cindex statement separator, RX
169 @cindex RX line separator
170 The @samp{!} character can be used to separate statements on the same
171 line.