@c Copyright (C) 2011-2021 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 norelax
Disable support for link-time relaxation (default).

@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.
