Commit | Line | Data |
---|---|---|
b90efa5b | 1 | @c Copyright (C) 2011-2015 Free Software Foundation, Inc. |
99c513f6 DD |
2 | @c This is part of the GAS manual. |
3 | @c For copying conditions, see the file as.texinfo. | |
4 | @ifset GENERIC | |
5 | @page | |
6 | @node RL78-Dependent | |
7 | @chapter RL78 Dependent Features | |
8 | @end ifset | |
9 | @ifclear GENERIC | |
10 | @node Machine Dependencies | |
11 | @chapter RL78 Dependent Features | |
12 | @end ifclear | |
13 | ||
14 | @cindex RL78 support | |
15 | @menu | |
16 | * RL78-Opts:: RL78 Assembler Command Line Options | |
17 | * RL78-Modifiers:: Symbolic Operand Modifiers | |
18 | * RL78-Directives:: Assembler Directives | |
99c513f6 DD |
19 | * RL78-Syntax:: Syntax |
20 | @end menu | |
21 | ||
22 | @node RL78-Opts | |
23 | @section RL78 Options | |
24 | @cindex options, RL78 | |
25 | @cindex RL78 options | |
26 | ||
4046d87a NC |
27 | @table @code |
28 | @item relax | |
29 | Enable support for link-time relaxation. | |
30 | ||
31 | @item mg10 | |
32 | Mark the generated binary as targeting the G10 variant of the RL78 | |
33 | architecture. | |
34 | ||
1740ba0c NC |
35 | @item mg13 |
36 | Mark the generated binary as targeting the G13 variant of the RL78 | |
37 | architecture. | |
38 | ||
39 | @item mg14 | |
40 | @itemx mrl78 | |
41 | Mark the generated binary as targeting the G14 variant of the RL78 | |
42 | architecture. This is the default. | |
43 | ||
856ea05c KP |
44 | @item m32bit-doubles |
45 | Mark the generated binary as one that uses 32-bits to hold the | |
46 | @code{double} floating point type. This is the default. | |
47 | ||
48 | @item m64bit-doubles | |
49 | Mark the generated binary as one that uses 64-bits to hold the | |
50 | @code{double} floating point type. | |
51 | ||
4046d87a | 52 | @end table |
99c513f6 DD |
53 | |
54 | @node RL78-Modifiers | |
55 | @section Symbolic Operand Modifiers | |
56 | ||
57 | @cindex RL78 modifiers | |
58 | @cindex syntax, RL78 | |
59 | ||
60 | The RL78 has three modifiers that adjust the relocations used by the | |
61 | linker: | |
62 | ||
63 | @table @code | |
64 | ||
65 | @item %lo16() | |
66 | ||
67 | When loading a 20-bit (or wider) address into registers, this modifier | |
68 | selects the 16 least significant bits. | |
69 | ||
70 | @smallexample | |
71 | movw ax,#%lo16(_sym) | |
72 | @end smallexample | |
73 | ||
74 | @item %hi16() | |
75 | ||
76 | When loading a 20-bit (or wider) address into registers, this modifier | |
77 | selects the 16 most significant bits. | |
78 | ||
79 | @smallexample | |
80 | movw ax,#%hi16(_sym) | |
81 | @end smallexample | |
82 | ||
83 | @item %hi8() | |
84 | ||
85 | When loading a 20-bit (or wider) address into registers, this modifier | |
86 | selects the 8 bits that would go into CS or ES (i.e. bits 23..16). | |
87 | ||
88 | @smallexample | |
89 | mov es, #%hi8(_sym) | |
90 | @end smallexample | |
91 | ||
92 | @end table | |
93 | ||
94 | @node RL78-Directives | |
95 | @section Assembler Directives | |
96 | ||
97 | @cindex assembler directives, RL78 | |
98 | @cindex RL78 assembler directives | |
99 | ||
100 | In addition to the common directives, the RL78 adds these: | |
101 | ||
102 | @table @code | |
103 | ||
104 | @item .double | |
856ea05c KP |
105 | Output a constant in ``double'' format, which is either a 32-bit |
106 | or a 64-bit floating point value, depending upon the setting of the | |
107 | @option{-m32bit-doubles}|@option{-m64bit-doubles} command line | |
108 | option. | |
99c513f6 DD |
109 | |
110 | @item .bss | |
111 | Select the BSS section. | |
112 | ||
113 | @item .3byte | |
114 | Output a constant value in a three byte format. | |
115 | ||
116 | @item .int | |
117 | @itemx .word | |
118 | Output a constant value in a four byte format. | |
119 | ||
120 | @end table | |
121 | ||
122 | @node RL78-Syntax | |
123 | @section Syntax for the RL78 | |
124 | @menu | |
125 | * RL78-Chars:: Special Characters | |
126 | @end menu | |
127 | ||
128 | @node RL78-Chars | |
129 | @subsection Special Characters | |
130 | ||
131 | @cindex line comment character, RL78 | |
132 | @cindex RL78 line comment character | |
133 | The presence of a @samp{;} appearing anywhere on a line indicates the | |
134 | start of a comment that extends to the end of that line. | |
135 | ||
136 | If a @samp{#} appears as the first character of a line then the whole | |
137 | line is treated as a comment, but in this case the line can also be a | |
138 | logical line number directive (@pxref{Comments}) or a preprocessor | |
139 | control command (@pxref{Preprocessing}). | |
140 | ||
141 | @cindex line separator, RL78 | |
142 | @cindex statement separator, RL78 | |
143 | @cindex RL78 line separator | |
144 | The @samp{|} character can be used to separate statements on the same | |
145 | line. |