From 0952813b0b27abe7f53a8048c0218883412e54cd Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Thu, 30 Apr 2015 15:25:49 -0400 Subject: Make RL78 disassembler and simulator respect ISA for mul/div [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. --- gdb/ChangeLog | 5 +++++ gdb/rl78-tdep.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'gdb') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ffa5297..c2b5a05 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2015-04-30 DJ Delorie + + * rl78-tdep.c (rl78_analyze_prologue): Pass RL78_ISA_DEFAULT to + rl78_decode_opcode + 2015-04-29 Doug Evans PR python/18285 diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c index bf96e88..3be2579 100644 --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -921,7 +921,7 @@ rl78_analyze_prologue (CORE_ADDR start_pc, opcode_handle.pc = pc; bytes_read = rl78_decode_opcode (pc, &opc, rl78_get_opcode_byte, - &opcode_handle); + &opcode_handle, RL78_ISA_DEFAULT); next_pc = pc + bytes_read; if (opc.id == RLO_sel) -- cgit v1.1