This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: New port: Renesas RL78
> Please could you include a gas documentation file anyway, even if it is
> pretty boring.
Attached.
> Also, please could you add entries to the gas/NEWS and ld/NEWS file
> mentioning support for the new architecture.
Also attached.
> Do you have a gas testsuite sub-directory for the RL78 ?
Sorry, I don't. The port was "proven" by running Coremark on RL78/G13
and RL78/G14 hardware.
* NEWS: Add Renesas RL78.
* doc/Makefile.am (c-rl78.texi): New.
* doc/Makefile.in: Likewise.
* doc/all.texi: Enable it.
* doc/as.texi: Add it.
Index: gas/NEWS
===================================================================
RCS file: /cvs/src/src/gas/NEWS,v
retrieving revision 1.120
diff -p -U5 -r1.120 gas/NEWS
--- gas/NEWS 25 Oct 2011 11:18:06 -0000 1.120
+++ gas/NEWS 28 Oct 2011 02:25:15 -0000
@@ -1,7 +1,9 @@
-*- text -*-
+* Add support for the Renesas RL78 architecture.
+
* Add support for the Adapteva EPIPHANY architecture.
Changes in 2.22:
* Add support for the Tilera TILEPRO and TILE-Gx architectures.
Index: ld/NEWS
===================================================================
RCS file: /cvs/src/src/ld/NEWS,v
retrieving revision 1.122
diff -p -U5 -r1.122 ld/NEWS
--- ld/NEWS 25 Oct 2011 11:18:12 -0000 1.122
+++ ld/NEWS 28 Oct 2011 02:25:16 -0000
@@ -1,7 +1,9 @@
-*- text -*-
+* Add support for the Renesas RL78 architecture.
+
* Add support for the Adapteva EPIPHANY architecture.
Changes in 2.22:
* --copy-dt-needed-entries is no longer enabled by default. Instead
Index: gas/doc/Makefile.am
===================================================================
RCS file: /cvs/src/src/gas/doc/Makefile.am,v
retrieving revision 1.63
diff -p -U5 -r1.63 gas/doc/Makefile.am
--- gas/doc/Makefile.am 25 Oct 2011 11:18:08 -0000 1.63
+++ gas/doc/Makefile.am 28 Oct 2011 02:25:16 -0000
@@ -57,10 +57,11 @@ CPU_DOCS = \
c-msp430.texi \
c-ns32k.texi \
c-pdp11.texi \
c-pj.texi \
c-ppc.texi \
+ c-rl78.texi \
c-rx.texi \
c-s390.texi \
c-score.texi \
c-sh.texi \
c-sh64.texi \
Index: gas/doc/Makefile.in
===================================================================
RCS file: /cvs/src/src/gas/doc/Makefile.in,v
retrieving revision 1.114
diff -p -U5 -r1.114 gas/doc/Makefile.in
--- gas/doc/Makefile.in 25 Oct 2011 11:18:08 -0000 1.114
+++ gas/doc/Makefile.in 28 Oct 2011 02:25:16 -0000
@@ -297,10 +297,11 @@ CPU_DOCS = \
c-msp430.texi \
c-ns32k.texi \
c-pdp11.texi \
c-pj.texi \
c-ppc.texi \
+ c-rl78.texi \
c-rx.texi \
c-s390.texi \
c-score.texi \
c-sh.texi \
c-sh64.texi \
Index: gas/doc/all.texi
===================================================================
RCS file: /cvs/src/src/gas/doc/all.texi,v
retrieving revision 1.40
diff -p -U5 -r1.40 gas/doc/all.texi
--- gas/doc/all.texi 25 Oct 2011 11:18:08 -0000 1.40
+++ gas/doc/all.texi 28 Oct 2011 02:25:16 -0000
@@ -58,10 +58,11 @@
@set MSP430
@set NS32K
@set PDP11
@set PJ
@set PPC
+@set RL78
@set RX
@set S390
@set SCORE
@set SH
@set SPARC
Index: gas/doc/as.texinfo
===================================================================
RCS file: /cvs/src/src/gas/doc/as.texinfo,v
retrieving revision 1.243
diff -p -U5 -r1.243 gas/doc/as.texinfo
--- gas/doc/as.texinfo 26 Oct 2011 12:14:17 -0000 1.243
+++ gas/doc/as.texinfo 28 Oct 2011 02:25:17 -0000
@@ -6943,10 +6943,13 @@ subject, see the hardware manufacturer's
* PJ-Dependent:: picoJava Dependent Features
@end ifset
@ifset PPC
* PPC-Dependent:: PowerPC Dependent Features
@end ifset
+@ifset RL78
+* RL78-Dependent:: RL78 Dependent Features
+@end ifset
@ifset RX
* RX-Dependent:: RX Dependent Features
@end ifset
@ifset S390
* S/390-Dependent:: IBM S/390 Dependent Features
@@ -7140,10 +7143,14 @@ family.
@ifset PPC
@include c-ppc.texi
@end ifset
+@ifset RL78
+@include c-rl78.texi
+@end ifset
+
@ifset RX
@include c-rx.texi
@end ifset
@ifset S390
Index: gas/doc/c-rl78.texi
===================================================================
RCS file: gas/doc/c-rl78.texi
diff -N gas/doc/c-rl78.texi
--- gas/doc/c-rl78.texi 1 Jan 1970 00:00:00 -0000
+++ gas/doc/c-rl78.texi 28 Oct 2011 02:25:17 -0000
@@ -0,0 +1,121 @@
+@c Copyright 2011
+@c 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-Float:: Floating Point
+* RL78-Syntax:: Syntax
+@end menu
+
+@node RL78-Opts
+@section RL78 Options
+@cindex options, RL78
+@cindex RL78 options
+
+The Renesas RL78 port of @code{@value{AS}} has no target-specific
+options.
+
+@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 a 32-bit floating
+point value on RL78.
+
+@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.