PR binutils/11017
[binutils/dougsmingw.git] / gas / doc / c-rx.texi
blob33ffe1933aae25f47ccc17a2f6f9e728df6d8d28
1 @c Copyright 2008, 2009
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
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 @end menu
23 @node RX-Opts
24 @section RX Options
25 @cindex options, RX
26 @cindex RX options
28 The Renesas RX port of @code{@value{AS}} has a few target specfic
29 command line options:
31 @table @code
33 @cindex @samp{-m32bit-doubles}
34 @item -m32bit-doubles
35 This option controls the ABI and indicates to use a 32-bit float ABI.
36 It has no effect on the assembled instructions, but it does influence
37 the behaviour of the @samp{.double} pseudo-op.
38 This is the default.
40 @cindex @samp{-m64bit-doubles}
41 @item -m64bit-doubles
42 This option controls the ABI and indicates to use a 64-bit float ABI.
43 It has no effect on the assembled instructions, but it does influence
44 the behaviour of the @samp{.double} pseudo-op.
46 @cindex @samp{-mbig-endian}
47 @item -mbig-endian
48 This option controls the ABI and indicates to use a big-endian data
49 ABI.  It has no effect on the assembled instructions, but it does
50 influence the behaviour of the @samp{.short}, @samp{.hword}, @samp{.int},
51 @samp{.word}, @samp{.long}, @samp{.quad} and @samp{.octa} pseudo-ops.
53 @cindex @samp{-mlittle-endian}
54 @item -mlittle-endian
55 This option controls the ABI and indicates to use a little-endian data
56 ABI.  It has no effect on the assembled instructions, but it does
57 influence the behaviour of the @samp{.short}, @samp{.hword}, @samp{.int},
58 @samp{.word}, @samp{.long}, @samp{.quad} and @samp{.octa} pseudo-ops.
59 This is the default.
61 @cindex @samp{-muse-conventional-section-names}
62 @item -muse-conventional-section-names
63 This option controls the default names given to the code (.text),
64 initialised data (.data) and uninitialised data sections (.bss).
66 @cindex @samp{-muse-renesas-section-names}
67 @item -muse-renesas-section-names
68 This option controls the default names given to the code (.P),
69 initialised data (.D_1) and uninitialised data sections (.B_1).
70 This is the default.
72 @cindex @samp{-msmall-data-limit}
73 @item -msmall-data-limit
74 This option tells the assembler that the small data limit feature of
75 the RX port of GCC is being used.  This results in the assembler
76 generating an undefined reference to a symbol called __gp for use by
77 the relocations that are needed to support the small data limit
78 feature.   This option is not enabled by default as it would otherwise
79 pollute the symbol table.
81 @end table
83 @node RX-Modifiers
84 @section Symbolic Operand Modifiers
86 @cindex RX modifiers
87 @cindex syntax, RX
89 The assembler supports several modifiers when using symbol addresses
90 in RX instruction operands.  The general syntax is the following:
92 @smallexample
93 %modifier(symbol)
94 @end smallexample
96 @table @code
97 @cindex symbol modifiers
99 @item %gp
100 @c FIXME: Add documentation here.
102 @end table
104 @node RX-Directives
105 @section Assembler Directives
107 @cindex assembler directives, RX
108 @cindex RX assembler directives
110 The RX version of @code{@value{AS}} has the following specific
111 assembler directives:
113 @table @code
115 @item .3byte
116 @cindex assembler directive .3byte, RX
117 @cindex RX assembler directive .3byte
118 Inserts a 3-byte value into the output file at the current location.
120 @end table
122 @node RX-Float
123 @section Floating Point
125 @cindex floating point, RX
126 @cindex RX floating point
128 The floating point formats generated by directives are these.
130 @table @code
131 @cindex @code{float} directive, RX
133 @item .float
134 @code{Single} precision (32-bit) floating point constants.
136 @cindex @code{double} directive, RX
137 @item .double
138 If the @option{-m64bit-doubles} command line option has been specified
139 then then @code{double} directive generates @code{double} precision
140 (64-bit) floating point constants, otherwise it generates
141 @code{single} precision (32-bit) floating point constants.  To force
142 the generation of 64-bit floating point constants used the @code{dc.d}
143 directive instead.
145 @end table