123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- @c Copyright (C) 2011-2015 Free Software Foundation, Inc.
- @c This is part of the GAS manual.
- @c For copying conditions, see the file as.texinfo.
- @ifset GENERIC
- @page
- @node RL78-Dependent
- @chapter RL78 Dependent Features
- @end ifset
- @ifclear GENERIC
- @node Machine Dependencies
- @chapter RL78 Dependent Features
- @end ifclear
- @cindex RL78 support
- @menu
- * RL78-Opts:: RL78 Assembler Command Line Options
- * RL78-Modifiers:: Symbolic Operand Modifiers
- * RL78-Directives:: Assembler Directives
- * RL78-Syntax:: Syntax
- @end menu
- @node RL78-Opts
- @section RL78 Options
- @cindex options, RL78
- @cindex RL78 options
- @table @code
- @item relax
- Enable support for link-time relaxation.
- @item mg10
- Mark the generated binary as targeting the G10 variant of the RL78
- architecture.
- @item mg13
- Mark the generated binary as targeting the G13 variant of the RL78
- architecture.
- @item mg14
- @itemx mrl78
- Mark the generated binary as targeting the G14 variant of the RL78
- architecture. This is the default.
- @item m32bit-doubles
- Mark the generated binary as one that uses 32-bits to hold the
- @code{double} floating point type. This is the default.
- @item m64bit-doubles
- Mark the generated binary as one that uses 64-bits to hold the
- @code{double} floating point type.
- @end table
- @node RL78-Modifiers
- @section Symbolic Operand Modifiers
- @cindex RL78 modifiers
- @cindex syntax, RL78
- The RL78 has three modifiers that adjust the relocations used by the
- linker:
- @table @code
- @item %lo16()
- When loading a 20-bit (or wider) address into registers, this modifier
- selects the 16 least significant bits.
- @smallexample
- movw ax,#%lo16(_sym)
- @end smallexample
- @item %hi16()
- When loading a 20-bit (or wider) address into registers, this modifier
- selects the 16 most significant bits.
- @smallexample
- movw ax,#%hi16(_sym)
- @end smallexample
- @item %hi8()
- When loading a 20-bit (or wider) address into registers, this modifier
- selects the 8 bits that would go into CS or ES (i.e. bits 23..16).
- @smallexample
- mov es, #%hi8(_sym)
- @end smallexample
- @end table
- @node RL78-Directives
- @section Assembler Directives
- @cindex assembler directives, RL78
- @cindex RL78 assembler directives
- In addition to the common directives, the RL78 adds these:
- @table @code
- @item .double
- Output a constant in ``double'' format, which is either a 32-bit
- or a 64-bit floating point value, depending upon the setting of the
- @option{-m32bit-doubles}|@option{-m64bit-doubles} command line
- option.
- @item .bss
- Select the BSS section.
- @item .3byte
- Output a constant value in a three byte format.
- @item .int
- @itemx .word
- Output a constant value in a four byte format.
- @end table
- @node RL78-Syntax
- @section Syntax for the RL78
- @menu
- * RL78-Chars:: Special Characters
- @end menu
- @node RL78-Chars
- @subsection Special Characters
- @cindex line comment character, RL78
- @cindex RL78 line comment character
- The presence of a @samp{;} appearing anywhere on a line indicates the
- start of a comment that extends to the end of that line.
- If a @samp{#} appears as the first character of a line then the whole
- line is treated as a comment, but in this case the line can also be a
- logical line number directive (@pxref{Comments}) or a preprocessor
- control command (@pxref{Preprocessing}).
- @cindex line separator, RL78
- @cindex statement separator, RL78
- @cindex RL78 line separator
- The @samp{|} character can be used to separate statements on the same
- line.
|