mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
6a25bee8d0
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.
76 lines
2.1 KiB
C
76 lines
2.1 KiB
C
/* rx-defs.h Renesas RX internal definitions
|
|
Copyright (C) 2008-2019 Free Software Foundation, Inc.
|
|
|
|
This file is part of GAS, the GNU Assembler.
|
|
|
|
GAS is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3, or (at your option)
|
|
any later version.
|
|
|
|
GAS is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GAS; see the file COPYING. If not, write to the Free
|
|
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
|
|
02110-1301, USA. */
|
|
|
|
#ifndef RX_DEFS_H
|
|
#define RX_DEFS_H
|
|
|
|
/* Third operand to rx_op. */
|
|
#define RXREL_SIGNED 0
|
|
#define RXREL_UNSIGNED 1
|
|
#define RXREL_NEGATIVE 2
|
|
#define RXREL_PCREL 3
|
|
#define RXREL_NEGATIVE_BORROW 4
|
|
|
|
#define RX_RELAX_NONE 0
|
|
#define RX_RELAX_BRANCH 1
|
|
#define RX_RELAX_IMM 2
|
|
#define RX_RELAX_DISP 3
|
|
|
|
enum rx_cpu_types
|
|
{
|
|
RX600,
|
|
RX610,
|
|
RX200,
|
|
RX100,
|
|
RXV2,
|
|
RXV3,
|
|
RXV3FPU,
|
|
};
|
|
|
|
extern int rx_pid_register;
|
|
extern int rx_gp_register;
|
|
extern enum rx_cpu_types rx_cpu;
|
|
|
|
extern int rx_error (const char *);
|
|
extern void rx_lex_init (char *, char *);
|
|
extern void rx_base1 (int);
|
|
extern void rx_base2 (int, int);
|
|
extern void rx_base3 (int, int, int);
|
|
extern void rx_base4 (int, int, int, int);
|
|
extern void rx_field (int, int, int);
|
|
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);
|
|
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;
|
|
|
|
#endif /* RX_DEFS_H */
|