c-rl78.texi revision 1.3
1@c Copyright (C) 2011-2015 Free Software Foundation, Inc. 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 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 27@table @code 28@item relax 29Enable support for link-time relaxation. 30 31@item mg10 32Mark the generated binary as targeting the G10 variant of the RL78 33architecture. 34 35@item mg13 36Mark the generated binary as targeting the G13 variant of the RL78 37architecture. 38 39@item mg14 40@itemx mrl78 41Mark the generated binary as targeting the G14 variant of the RL78 42architecture. This is the default. 43 44@item m32bit-doubles 45Mark 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 49Mark the generated binary as one that uses 64-bits to hold the 50@code{double} floating point type. 51 52@end table 53 54@node RL78-Modifiers 55@section Symbolic Operand Modifiers 56 57@cindex RL78 modifiers 58@cindex syntax, RL78 59 60The RL78 has three modifiers that adjust the relocations used by the 61linker: 62 63@table @code 64 65@item %lo16() 66 67When loading a 20-bit (or wider) address into registers, this modifier 68selects the 16 least significant bits. 69 70@smallexample 71 movw ax,#%lo16(_sym) 72@end smallexample 73 74@item %hi16() 75 76When loading a 20-bit (or wider) address into registers, this modifier 77selects the 16 most significant bits. 78 79@smallexample 80 movw ax,#%hi16(_sym) 81@end smallexample 82 83@item %hi8() 84 85When loading a 20-bit (or wider) address into registers, this modifier 86selects 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 100In addition to the common directives, the RL78 adds these: 101 102@table @code 103 104@item .double 105Output a constant in ``double'' format, which is either a 32-bit 106or a 64-bit floating point value, depending upon the setting of the 107@option{-m32bit-doubles}|@option{-m64bit-doubles} command line 108option. 109 110@item .bss 111Select the BSS section. 112 113@item .3byte 114Output a constant value in a three byte format. 115 116@item .int 117@itemx .word 118Output 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 133The presence of a @samp{;} appearing anywhere on a line indicates the 134start of a comment that extends to the end of that line. 135 136If a @samp{#} appears as the first character of a line then the whole 137line is treated as a comment, but in this case the line can also be a 138logical line number directive (@pxref{Comments}) or a preprocessor 139control command (@pxref{Preprocessing}). 140 141@cindex line separator, RL78 142@cindex statement separator, RL78 143@cindex RL78 line separator 144The @samp{|} character can be used to separate statements on the same 145line. 146