This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Don't clobber info->mach in gdb_print_insn_mips


I updated to the latest CVS gdb over the weekend and afterwards my
mipsisa32-intrinsity-elf target would no longer disassemble
coprocessor 2 instructions correctly.  I tracked it down to the
info->mach field being clobbered by gdb_print_insn_mips.  The attached
patch fixes it, though I'm not sure if this is the correct solution.

Note that mipsisa32-intrinsity-elf is not yet a supported target
configuration as it is a work in progress and the patches have not
been submitted yet.  But mipsisa32-unknown-elf has a similar problem.

-Fred


2003-06-23  Fred Fish  <fnf@intrinsity.com>

	* mips-tdep.c (gdb_print_insn_mips): Don't clobber a previously
	set value of info->mach.


Index: mips-tdep.c
===================================================================
RCS file: /mips/newtools/fsf/gdb/gdb/mips-tdep.c,v
retrieving revision 1.20
diff -c -r1.20 mips-tdep.c
*** mips-tdep.c	2003/06/23 02:13:09	1.20
--- mips-tdep.c	2003/06/23 13:33:02
***************
*** 5279,5288 ****
       guess that if the address passed in is odd, it's 16-bits.  */
    if (proc_desc)
      info->mach = pc_is_mips16 (PROC_LOW_ADDR (proc_desc)) ?
!       bfd_mach_mips16 : 0;
    else
      info->mach = pc_is_mips16 (memaddr) ?
!       bfd_mach_mips16 : 0;
  
    /* Round down the instruction address to the appropriate boundary.  */
    memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);
--- 5279,5288 ----
       guess that if the address passed in is odd, it's 16-bits.  */
    if (proc_desc)
      info->mach = pc_is_mips16 (PROC_LOW_ADDR (proc_desc)) ?
!       bfd_mach_mips16 : info->mach;
    else
      info->mach = pc_is_mips16 (memaddr) ?
!       bfd_mach_mips16 : info->mach;
  
    /* Round down the instruction address to the appropriate boundary.  */
    memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]