diff options
author | Yoshinori Sato <ysato@users.sourceforge.jp> | 2018-12-25 20:52:53 +0900 |
---|---|---|
committer | Yoshinori Sato <ysato@users.sourceforge.jp> | 2019-01-05 22:51:41 +0900 |
commit | 6a25bee8d049d3b51cea9e10f487fc04c792dd66 (patch) | |
tree | 742fe49961d63c6cd241d94e3a7a970e5b75eac2 /gas/config/rx-defs.h | |
parent | 59581069b4d070ab0ac61047177ee119110d678e (diff) | |
download | gdb-6a25bee8d049d3b51cea9e10f487fc04c792dd66.zip gdb-6a25bee8d049d3b51cea9e10f487fc04c792dd66.tar.gz gdb-6a25bee8d049d3b51cea9e10f487fc04c792dd66.tar.bz2 |
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.
Diffstat (limited to 'gas/config/rx-defs.h')
-rw-r--r-- | gas/config/rx-defs.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gas/config/rx-defs.h b/gas/config/rx-defs.h index 508e6cf..9d114f5 100644 --- a/gas/config/rx-defs.h +++ b/gas/config/rx-defs.h @@ -39,7 +39,9 @@ enum rx_cpu_types RX610, RX200, RX100, - RXV2 + RXV2, + RXV3, + RXV3FPU, }; extern int rx_pid_register; @@ -57,6 +59,7 @@ extern void rx_op (expressionS, int, int); extern void rx_disp3 (expressionS, int); extern void rx_field5s (expressionS); extern void rx_field5s2 (expressionS); +extern void rx_bfield (expressionS, expressionS, expressionS); extern void rx_relax (int, int); extern void rx_linkrelax_dsp (int); extern void rx_linkrelax_imm (int); @@ -64,6 +67,7 @@ extern void rx_linkrelax_branch (void); extern int rx_parse (void); extern int rx_wrap (void); extern void rx_note_string_insn_use (void); +extern void rx_post (char); extern char * rx_lex_start; extern char * rx_lex_end; |