0952813b0b
[gas] * config/rl78-defs.h (rl78_isa_g10): New. (rl78_isa_g13): New. (rl78_isa_g14): New. * config/rl78-parse.y (ISA_G10): New. (ISA_G13): New. (ISA_G14): New. (MULHU, MULH, MULU, DIVHU, DIVWU, MACHU, MACH): Use them. * config/tc-rl78.c (rl78_isa_g10): New. (rl78_isa_g13): New. (rl78_isa_g14): New. [gdb] * rl78-tdep.c (rl78_analyze_prologue): Pass RL78_ISA_DEFAULT to rl78_decode_opcode [include] * dis-asm.h (print_insn_rl78_g10): New. (print_insn_rl78_g13): New. (print_insn_rl78_g14): New. (rl78_get_disassembler): New. * opcode/rl78.h (RL78_Dis_Isa): New. (rl78_decode_opcode): Add ISA parameter. [opcodes] * disassemble.c (disassembler): Choose suitable disassembler based on E_ABI. * rl78-decode.opc (rl78_decode_opcode): Take ISA parameter. Use it to decode mul/div insns. * rl78-decode.c: Regenerate. * rl78-dis.c (print_insn_rl78): Rename to... (print_insn_rl78_common): ...this, take ISA parameter. (print_insn_rl78): New. (print_insn_rl78_g10): New. (print_insn_rl78_g13): New. (print_insn_rl78_g14): New. (rl78_get_disassembler): New. [sim] * rl78/cpu.c (g14_multiply): New. * rl78/cpu.h (g14_multiply): New. * rl78/load.c (rl78_load): Decode ISA completely. * rl78/main.c (main): Expand -M to include other ISAs. * rl78/rl78.c (decode_opcode): Decode based on ISA. * rl78/trace.c (rl78_disasm_fn): New. (sim_disasm_init): Reset it. (sim_disasm_one): Get correct disassembler for ISA.
56 lines
1.9 KiB
C
56 lines
1.9 KiB
C
/* rl78-defs.h Renesas RL78 internal definitions
|
|
Copyright (C) 2008-2015 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 RL78_DEFS_H
|
|
#define RL78_DEFS_H
|
|
|
|
/* Third operand to rl78_op. */
|
|
#define RL78REL_DATA 0
|
|
#define RL78REL_PCREL 1
|
|
|
|
#define RL78_RELAX_NONE 0
|
|
#define RL78_RELAX_BRANCH 1
|
|
|
|
extern int rl78_error (const char *);
|
|
extern void rl78_lex_init (char *, char *);
|
|
extern void rl78_prefix (int);
|
|
extern int rl78_has_prefix (void);
|
|
extern void rl78_base1 (int);
|
|
extern void rl78_base2 (int, int);
|
|
extern void rl78_base3 (int, int, int);
|
|
extern void rl78_base4 (int, int, int, int);
|
|
extern void rl78_field (int, int, int);
|
|
extern void rl78_op (expressionS, int, int);
|
|
extern void rl78_disp3 (expressionS, int);
|
|
extern void rl78_field5s (expressionS);
|
|
extern void rl78_field5s2 (expressionS);
|
|
extern void rl78_relax (int, int);
|
|
extern void rl78_linkrelax_addr16 (void);
|
|
extern void rl78_linkrelax_branch (void);
|
|
extern int rl78_parse (void);
|
|
extern int rl78_wrap (void);
|
|
|
|
extern int rl78_isa_g10 (void);
|
|
extern int rl78_isa_g13 (void);
|
|
extern int rl78_isa_g14 (void);
|
|
|
|
extern char * rl78_lex_start;
|
|
extern char * rl78_lex_end;
|
|
#endif
|