RX: gas - Add RXv3 instruction support.
authorYoshinori Sato <ysato@users.sourceforge.jp>
Tue, 25 Dec 2018 11:52:53 +0000 (20:52 +0900)
committerYoshinori Sato <ysato@users.sourceforge.jp>
Sat, 5 Jan 2019 13:51:41 +0000 (22:51 +0900)
commit6a25bee8d049d3b51cea9e10f487fc04c792dd66
tree742fe49961d63c6cd241d94e3a7a970e5b75eac2
parent59581069b4d070ab0ac61047177ee119110d678e
RX: gas - Add RXv3 instruction support.

Instruction manual.
https://www.renesas.com/us/en/doc/products/mpumcu/doc/rx_family/r01us0316ej0100-rxv3sm.pdf

* config/rx-defs.h (rx_cpu_types): Add type RXV3 and RXV3FPU.
(rx_bfield): Add prototype.
(rx_post): Likewise.
* config/rx-parse.y: Add v3 instructions and Double FPU registers.
(DSIZE): Define.
(POST): Define.
(rx_check_v3): New. check v3 type.
(rx_check_dfpu): New. check have double support.
(double_condition_table): New. dcmp<cond> contiditon.
(check_condition): Multiple condition support.
(rx_lex): RXv3 instructions support.
Add parse dcmp<cond> instruction and Double FPU registers.
(immediate): Disable optimize in dmov #imm case.
(displacement): Add double displacement in dmov instraction.
* config/tc-rx.c (rx_use_conventional_section_names):
Invert default value in rx-*-linux target.
(cpu_type): Add additional ELF flags.
(cpu_type_list): Add RXv3.
(md_parse_option): Refer elf_flags from cpu_type_list.
(md_show_usage): Add rxv3 and rxv3-dfpu.
(rx_bytesT): Add post byte.
(rx_bfield): New. generate bfmov / bfmovz "imm" field.
(rx_post): New. Set instruction post byte.
(md_assemble): Add post byte.
doc/c-rx.texi: Add cpu types.
* testsuite/gas/rx/Xtod.d: New.
* testsuite/gas/rx/Xtod.sm: New.
* testsuite/gas/rx/bfmov.d: New.
* testsuite/gas/rx/bfmov.sm: New.
* testsuite/gas/rx/dabs.d: New.
* testsuite/gas/rx/dabs.sm: New.
* testsuite/gas/rx/dadd.d: New.
* testsuite/gas/rx/dadd.sm: New.
* testsuite/gas/rx/dcmp.d: New.
* testsuite/gas/rx/dcmp.sm: New.
* testsuite/gas/rx/ddiv.d: New.
* testsuite/gas/rx/ddiv.sm: New.
* testsuite/gas/rx/dmov.d: New.
* testsuite/gas/rx/dmov.sm: New.
* testsuite/gas/rx/dmul.d: New.
* testsuite/gas/rx/dmul.sm: New.
* testsuite/gas/rx/dneg.d: New.
* testsuite/gas/rx/dneg.sm: New.
* testsuite/gas/rx/dpopm.d: New.
* testsuite/gas/rx/dpopm.sm: New.
* testsuite/gas/rx/dpushm.d: New.
* testsuite/gas/rx/dpushm.sm: New.
* testsuite/gas/rx/dround.d: New.
* testsuite/gas/rx/dround.sm: New.
* testsuite/gas/rx/dsqrt.d: New.
* testsuite/gas/rx/dsqrt.sm: New.
* testsuite/gas/rx/dsub.d: New.
* testsuite/gas/rx/dsub.sm: New.
* testsuite/gas/rx/dtoX.d: New.
* testsuite/gas/rx/dtoX.sm: New.
* testsuite/gas/rx/macros.inc: Add double FPU registers.
* testsuite/gas/rx/mvfdc.d: New.
* testsuite/gas/rx/mvfdc.sm: New.
* testsuite/gas/rx/mvfdr.d: New.
* testsuite/gas/rx/mvfdr.sm: New.
* testsuite/gas/rx/mvtdc.d: New.
* testsuite/gas/rx/mvtdc.sm: New.
* testsuite/gas/rx/rstr.d: New.
* testsuite/gas/rx/rstr.sm: New.
* testsuite/gas/rx/rx.exp: Use rxv3-dfpu option.
* testsuite/gas/rx/save.d: New.
* testsuite/gas/rx/save.sm: New.
* testsuite/gas/rx/xor.d: New.
* testsuite/gas/rx/xor.sm: Add pattern.
49 files changed:
gas/ChangeLog
gas/config/rx-defs.h
gas/config/rx-parse.y
gas/config/tc-rx.c
gas/doc/c-rx.texi
gas/testsuite/gas/rx/Xtod.d [new file with mode: 0644]
gas/testsuite/gas/rx/Xtod.sm [new file with mode: 0644]
gas/testsuite/gas/rx/bfmov.d [new file with mode: 0644]
gas/testsuite/gas/rx/bfmov.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dabs.d [new file with mode: 0644]
gas/testsuite/gas/rx/dabs.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dadd.d [new file with mode: 0644]
gas/testsuite/gas/rx/dadd.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dcmp.d [new file with mode: 0644]
gas/testsuite/gas/rx/dcmp.sm [new file with mode: 0644]
gas/testsuite/gas/rx/ddiv.d [new file with mode: 0644]
gas/testsuite/gas/rx/ddiv.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dmov.d [new file with mode: 0644]
gas/testsuite/gas/rx/dmov.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dmul.d [new file with mode: 0644]
gas/testsuite/gas/rx/dmul.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dneg.d [new file with mode: 0644]
gas/testsuite/gas/rx/dneg.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dpopm.d [new file with mode: 0644]
gas/testsuite/gas/rx/dpopm.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dpushm.d [new file with mode: 0644]
gas/testsuite/gas/rx/dpushm.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dround.d [new file with mode: 0644]
gas/testsuite/gas/rx/dround.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dsqrt.d [new file with mode: 0644]
gas/testsuite/gas/rx/dsqrt.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dsub.d [new file with mode: 0644]
gas/testsuite/gas/rx/dsub.sm [new file with mode: 0644]
gas/testsuite/gas/rx/dtoX.d [new file with mode: 0644]
gas/testsuite/gas/rx/dtoX.sm [new file with mode: 0644]
gas/testsuite/gas/rx/macros.inc
gas/testsuite/gas/rx/mvfdc.d [new file with mode: 0644]
gas/testsuite/gas/rx/mvfdc.sm [new file with mode: 0644]
gas/testsuite/gas/rx/mvfdr.d [new file with mode: 0644]
gas/testsuite/gas/rx/mvfdr.sm [new file with mode: 0644]
gas/testsuite/gas/rx/mvtdc.d [new file with mode: 0644]
gas/testsuite/gas/rx/mvtdc.sm [new file with mode: 0644]
gas/testsuite/gas/rx/rstr.d [new file with mode: 0644]
gas/testsuite/gas/rx/rstr.sm [new file with mode: 0644]
gas/testsuite/gas/rx/rx.exp
gas/testsuite/gas/rx/save.d [new file with mode: 0644]
gas/testsuite/gas/rx/save.sm [new file with mode: 0644]
gas/testsuite/gas/rx/xor.d
gas/testsuite/gas/rx/xor.sm