Commit | Line | Data |
---|---|---|
c7927a3c NC |
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 | |
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 | @end menu | |
22 | ||
23 | @node RX-Opts | |
24 | @section RX Options | |
25 | @cindex options, RX | |
26 | @cindex RX options | |
27 | ||
28 | The Renesas RX port of @code{@value{AS}} has a few target specfic | |
29 | command line options: | |
30 | ||
31 | @table @code | |
32 | ||
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. | |
39 | ||
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. | |
45 | ||
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. | |
52 | ||
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. | |
60 | ||
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). | |
65 | ||
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. | |
71 | ||
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. | |
80 | ||
81 | @end table | |
82 | ||
83 | @node RX-Modifiers | |
84 | @section Symbolic Operand Modifiers | |
85 | ||
86 | @cindex RX modifiers | |
87 | @cindex syntax, RX | |
88 | ||
89 | The assembler supports several modifiers when using symbol addresses | |
90 | in RX instruction operands. The general syntax is the following: | |
91 | ||
92 | @smallexample | |
93 | %modifier(symbol) | |
94 | @end smallexample | |
95 | ||
96 | @table @code | |
97 | @cindex symbol modifiers | |
98 | ||
99 | @item %gp | |
100 | @c FIXME: Add documentation here. | |
101 | ||
102 | @end table | |
103 | ||
104 | @node RX-Directives | |
105 | @section Assembler Directives | |
106 | ||
107 | @cindex assembler directives, RX | |
108 | @cindex RX assembler directives | |
109 | ||
110 | The RX version of @code{@value{AS}} has the following specific | |
111 | assembler directives: | |
112 | ||
113 | @table @code | |
114 | ||
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. | |
119 | ||
120 | @end table | |
121 | ||
122 | @node RX-Float | |
123 | @section Floating Point | |
124 | ||
125 | @cindex floating point, RX | |
126 | @cindex RX floating point | |
127 | ||
128 | The floating point formats generated by directives are these. | |
129 | ||
130 | @table @code | |
131 | @cindex @code{float} directive, RX | |
132 | ||
133 | @item .float | |
134 | @code{Single} precision (32-bit) floating point constants. | |
135 | ||
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. | |
144 | ||
145 | @end table |