From d31431ed7c28b0df944f5daf3e772b058f66d351 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Thu, 26 Jun 2003 18:01:58 +0000 Subject: [PATCH] 2003-06-26 Andrew Cagney * mips-tdep.c (gdb_print_insn_mips): Only explicitly set info->mach when MIPS16. Patch suggested by Fred Fish. --- gdb/ChangeLog | 5 +++++ gdb/mips-tdep.c | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a6f3fd8b15..cbcbf813b7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2003-06-26 Andrew Cagney + + * mips-tdep.c (gdb_print_insn_mips): Only explicitly set + info->mach when MIPS16. Patch suggested by Fred Fish. + 2003-06-26 Andrew Cagney * utils.c (internal_vproblem): Print the problem to a reason diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 4009ca542a..f39179d3a0 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -5270,12 +5270,20 @@ gdb_print_insn_mips (bfd_vma memaddr, disassemble_info *info) the procedure descriptor exists and the address therein is odd, it's definitely a 16-bit function. Otherwise, we have to just guess that if the address passed in is odd, it's 16-bits. */ + /* FIXME: cagney/2003-06-26: Is this even necessary? The + disassembler needs to be able to locally determine the ISA, and + not rely on GDB. Otherwize the stand-alone 'objdump -d' will not + work. */ if (proc_desc) - info->mach = pc_is_mips16 (PROC_LOW_ADDR (proc_desc)) ? - bfd_mach_mips16 : 0; + { + if (pc_is_mips16 (PROC_LOW_ADDR (proc_desc))) + info->mach = bfd_mach_mips16; + } else - info->mach = pc_is_mips16 (memaddr) ? - bfd_mach_mips16 : 0; + { + if (pc_is_mips16 (memaddr)) + info->mach = bfd_mach_mips16; + } /* Round down the instruction address to the appropriate boundary. */ memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);