mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
[.]
* configure.ac (rl78-*-*) New case. * configure: Regenerate. [bfd] * Makefile.am (ALL_MACHINES): Add cpu-rl78.lo. (ALL_MACHINES_CFILES): Add cpu-rl78.c. (BFD32_BACKENDS): Add elf32-rl78.lo. (BFD32_BACKENDS_CFILES): Add elf32-rl78.c. (Makefile.in): Regenerate. * archures.c (bfd_architecture): Define bfd_arch_rl78. (bfd_archures_list): Add bfd_rl78_arch. * config.bfd: Add rl78-*-elf. * configure.in: Add bfd_elf32_rl78_vec. * reloc.c (bfd_reloc_code_type): Add BFD_RELOC_RL78_* relocations. * targets.c (bfd_target_vector): Add bfd_elf32_rl78_vec. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * libbfd.h: Regenerate. * cpu-rl78.c: New file. * elf32-rl78.c: New file. [binutils] * readelf.c: Include elf/rl78.h (guess_is_rela): Handle EM_RL78. (dump_relocations): Likewise. (get_machine_name): Likewise. (is_32bit_abs_reloc): Likewise. * NEWS: Mention addition of RL78 support. * MAINTAINERS: Add myself as RL78 port maintainer. [gas] * Makefile.am (TARGET_CPU_CFILES): Add tc-rl78.c. (TARGET_CPU_HFILES): Add rc-rl78.h. (EXTRA_DIST): Add rl78-parse.c and rl78-parse.y. (rl78-parse.c, rl78-parse.h, rl78-parse.o, rl78-defs.h): New rules. * Makefile.in: Regenerate. * configure.in: Add rl78 case. * configure: Regenerate. * configure.tgt: Add rl78 case. * config/rl78-defs.h: New file. * config/rl78-parse.y: New file. * config/tc-rl78.c: New file. * config/tc-rl78.h: New file. * 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. [include] * dis-asm.h (print_insn_rl78): Declare. [include/elf] * common.h (EM_RL78, EM_78K0R): New. * rl78.h: New. [include/opcode] * rl78.h: New file. [ld] * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32rl78.c. (+eelf32rl78.c): New rule. * Makefile.in: Regenerate. * configure.tgt: Add rl78-*-* case. * emulparams/elf32rl78.sh: New file. * NEWS: Mention addition of Renesas RL78 support. [opcodes] * Makefile.am (TARGET_LIBOPCODES_CFILES): Add rl78-decode.c and rl78-dis.c. (MAINTAINERCLEANFILES): Add rl78-decode.c. (rl78-decode.c): New rule, built from rl78-decode.opc and opc2c. * Makefile.in: Regenerate. * configure.in: Add bfd_rl78_arch case. * configure: Regenerate. * disassemble.c: Define ARCH_rl78. (disassembler): Add ARCH_rl78 case. * rl78-decode.c: New file. * rl78-decode.opc: New file. * rl78-dis.c: New file.
This commit is contained in:
121
gas/doc/c-rl78.texi
Normal file
121
gas/doc/c-rl78.texi
Normal file
@ -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.
|
Reference in New Issue
Block a user