Skip to content

Commit

Permalink
Don't use print_insn_XXX in GDB
Browse files Browse the repository at this point in the history
This is a follow-up to

  [PATCH 0/6] Unify the disassembler selection in gdb and objdump
  https://sourceware.org/ml/binutils/2017-05/msg00192.html

that is, opcodes is able to select the right disassembler, so gdb
doesn't have to select them.  Instead, gdb can just use
default_print_insn.  As a result, these print_insn_XXX are not used
out of opcodes, so this patch also moves their declarations from
include/dis-asm.h to opcodes/disassemble.h.  With this change,
GDB doesn't use any print_insn_XXX directly any more.

gdb:

2017-06-14  Yao Qi  <yao.qi@linaro.org>

	* aarch64-tdep.c (aarch64_gdb_print_insn): Call
	default_print_insn instead of print_insn_aarch64.
	* arm-tdep.c (gdb_print_insn_arm): Call
	default_print_insn instead of print_insn_big_arm
	and print_insn_little_arm.
	* i386-tdep.c (i386_print_insn): Call default_print_insn
	instead of print_insn_i386.
	* ia64-tdep.c (ia64_print_insn): Call
	default_print_insn instead of print_insn_ia64.
	* mips-tdep.c (gdb_print_insn_mips): Call
	default_print_insn instead of print_insn_big_mips
	and print_insn_little_mips.
	* spu-tdep.c (gdb_print_insn_spu): Call default_print_insn
	instead of print_insn_spu.

include:

2017-06-14  Yao Qi  <yao.qi@linaro.org>

	* dis-asm.h (print_insn_aarch64): Move it to opcodes/disassemble.h.
	(print_insn_big_arm, print_insn_big_mips): Likewise.
	(print_insn_i386, print_insn_ia64): Likewise.
	(print_insn_little_arm, print_insn_little_mips): Likewise.
	(print_insn_spu): Likewise.

opcodes:

2017-06-14  Yao Qi  <yao.qi@linaro.org>

	* aarch64-dis.c: Include disassemble.h instead of dis-asm.h.
	* arm-dis.c: Likewise.
	* ia64-dis.c: Likewise.
	* mips-dis.c: Likewise.
	* spu-dis.c: Likewise.
	* disassemble.h (print_insn_aarch64): New declaration, moved from
	include/dis-asm.h.
	(print_insn_big_arm, print_insn_big_mips): Likewise.
	(print_insn_i386, print_insn_ia64): Likewise.
	(print_insn_little_arm, print_insn_little_mips): Likewise.
  • Loading branch information
Yao Qi committed Jun 14, 2017
1 parent 99031ba commit 6394c60
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 26 deletions.
17 changes: 17 additions & 0 deletions gdb/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
2017-06-14 Yao Qi <yao.qi@linaro.org>

* aarch64-tdep.c (aarch64_gdb_print_insn): Call
default_print_insn instead of print_insn_aarch64.
* arm-tdep.c (gdb_print_insn_arm): Call
default_print_insn instead of print_insn_big_arm
and print_insn_little_arm.
* i386-tdep.c (i386_print_insn): Call default_print_insn
instead of print_insn_i386.
* ia64-tdep.c (ia64_print_insn): Call
default_print_insn instead of print_insn_ia64.
* mips-tdep.c (gdb_print_insn_mips): Call
default_print_insn instead of print_insn_big_mips
and print_insn_little_mips.
* spu-tdep.c (gdb_print_insn_spu): Call default_print_insn
instead of print_insn_spu.

2017-06-14 Pedro Alves <palves@redhat.com>

* ada-lang.c: Include "common/byte-vector.h".
Expand Down
2 changes: 1 addition & 1 deletion gdb/aarch64-tdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -1777,7 +1777,7 @@ static int
aarch64_gdb_print_insn (bfd_vma memaddr, disassemble_info *info)
{
info->symbols = NULL;
return print_insn_aarch64 (memaddr, info);
return default_print_insn (memaddr, info);
}

/* AArch64 BRK software debug mode instruction.
Expand Down
5 changes: 1 addition & 4 deletions gdb/arm-tdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -7773,10 +7773,7 @@ gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
else
info->symbols = NULL;

if (info->endian == BFD_ENDIAN_BIG)
return print_insn_big_arm (memaddr, info);
else
return print_insn_little_arm (memaddr, info);
return default_print_insn (memaddr, info);
}

/* The following define instruction sequences that will cause ARM
Expand Down
2 changes: 1 addition & 1 deletion gdb/i386-tdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -4011,7 +4011,7 @@ i386_print_insn (bfd_vma pc, struct disassemble_info *info)

info->disassembler_options = disassembly_flavor;

return print_insn_i386 (pc, info);
return default_print_insn (pc, info);
}


Expand Down
2 changes: 1 addition & 1 deletion gdb/ia64-tdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -3926,7 +3926,7 @@ static int
ia64_print_insn (bfd_vma memaddr, struct disassemble_info *info)
{
info->bytes_per_line = SLOT_MULTIPLIER;
return print_insn_ia64 (memaddr, info);
return default_print_insn (memaddr, info);
}

/* The default "size_of_register_frame" gdbarch_tdep routine for ia64. */
Expand Down
6 changes: 1 addition & 5 deletions gdb/mips-tdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -7019,11 +7019,7 @@ gdb_print_insn_mips (bfd_vma memaddr, struct disassemble_info *info)
register naming conventions specified by the user. */
info->disassembler_options = "gpr-names=32";

/* Call the appropriate disassembler based on the target endian-ness. */
if (info->endian == BFD_ENDIAN_BIG)
return print_insn_big_mips (memaddr, info);
else
return print_insn_little_mips (memaddr, info);
return default_print_insn (memaddr, info);
}

static int
Expand Down
2 changes: 1 addition & 1 deletion gdb/spu-tdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -1721,7 +1721,7 @@ gdb_print_insn_spu (bfd_vma memaddr, struct disassemble_info *info)
memcpy (&spu_info, info, sizeof (*info));
spu_info.id = SPUADDR_SPU (memaddr);
spu_info.print_address_func = spu_dis_asm_print_address;
return print_insn_spu (memaddr, &spu_info);
return default_print_insn (memaddr, &spu_info);
}


Expand Down
8 changes: 8 additions & 0 deletions include/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
2017-06-14 Yao Qi <yao.qi@linaro.org>

* dis-asm.h (print_insn_aarch64): Move it to opcodes/disassemble.h.
(print_insn_big_arm, print_insn_big_mips): Likewise.
(print_insn_i386, print_insn_ia64): Likewise.
(print_insn_little_arm, print_insn_little_mips): Likewise.
(print_insn_spu): Likewise.

2017-06-06 Andrew Burgess <andrew.burgess@embecosm.com>

* bfdlink.h (struct bfd_link_info): Add new resolve_section_groups
Expand Down
8 changes: 0 additions & 8 deletions include/dis-asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -238,19 +238,11 @@ typedef struct
typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);

/* Disassemblers used out side of opcodes library. */
extern int print_insn_aarch64 (bfd_vma, disassemble_info *);
extern int print_insn_big_arm (bfd_vma, disassemble_info *);
extern int print_insn_big_mips (bfd_vma, disassemble_info *);
extern int print_insn_i386 (bfd_vma, disassemble_info *);
extern int print_insn_ia64 (bfd_vma, disassemble_info *);
extern int print_insn_little_arm (bfd_vma, disassemble_info *);
extern int print_insn_little_mips (bfd_vma, disassemble_info *);
extern int print_insn_m32c (bfd_vma, disassemble_info *);
extern int print_insn_mep (bfd_vma, disassemble_info *);
extern int print_insn_sh (bfd_vma, disassemble_info *);
extern int print_insn_sh64x_media (bfd_vma, disassemble_info *);
extern int print_insn_sparc (bfd_vma, disassemble_info *);
extern int print_insn_spu (bfd_vma, disassemble_info *);
extern int print_insn_rx (bfd_vma, disassemble_info *);
extern int print_insn_rl78 (bfd_vma, disassemble_info *);
extern int print_insn_rl78_g10 (bfd_vma, disassemble_info *);
Expand Down
13 changes: 13 additions & 0 deletions opcodes/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
2017-06-14 Yao Qi <yao.qi@linaro.org>

* aarch64-dis.c: Include disassemble.h instead of dis-asm.h.
* arm-dis.c: Likewise.
* ia64-dis.c: Likewise.
* mips-dis.c: Likewise.
* spu-dis.c: Likewise.
* disassemble.h (print_insn_aarch64): New declaration, moved from
include/dis-asm.h.
(print_insn_big_arm, print_insn_big_mips): Likewise.
(print_insn_i386, print_insn_ia64): Likewise.
(print_insn_little_arm, print_insn_little_mips): Likewise.

2017-06-14 Nick Clifton <nickc@redhat.com>

PR binutils/21587
Expand Down
2 changes: 1 addition & 1 deletion opcodes/aarch64-dis.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

#include "sysdep.h"
#include "bfd_stdint.h"
#include "dis-asm.h"
#include "disassemble.h"
#include "libiberty.h"
#include "opintl.h"
#include "aarch64-dis.h"
Expand Down
2 changes: 1 addition & 1 deletion opcodes/arm-dis.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

#include "sysdep.h"

#include "dis-asm.h"
#include "disassemble.h"
#include "opcode/arm.h"
#include "opintl.h"
#include "safe-ctype.h"
Expand Down
8 changes: 8 additions & 0 deletions opcodes/disassemble.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@
#define DISASSEMBLE_H
#include "dis-asm.h"

extern int print_insn_aarch64 (bfd_vma, disassemble_info *);
extern int print_insn_alpha (bfd_vma, disassemble_info *);
extern int print_insn_avr (bfd_vma, disassemble_info *);
extern int print_insn_bfin (bfd_vma, disassemble_info *);
extern int print_insn_big_arm (bfd_vma, disassemble_info *);
extern int print_insn_big_mips (bfd_vma, disassemble_info *);
extern int print_insn_big_nios2 (bfd_vma, disassemble_info *);
extern int print_insn_big_powerpc (bfd_vma, disassemble_info *);
extern int print_insn_big_score (bfd_vma, disassemble_info *);
Expand All @@ -42,14 +45,18 @@ extern int print_insn_h8300s (bfd_vma, disassemble_info *);
extern int print_insn_h8500 (bfd_vma, disassemble_info *);
extern int print_insn_hppa (bfd_vma, disassemble_info *);
extern int print_insn_i370 (bfd_vma, disassemble_info *);
extern int print_insn_i386 (bfd_vma, disassemble_info *);
extern int print_insn_i386_att (bfd_vma, disassemble_info *);
extern int print_insn_i386_intel (bfd_vma, disassemble_info *);
extern int print_insn_i860 (bfd_vma, disassemble_info *);
extern int print_insn_i960 (bfd_vma, disassemble_info *);
extern int print_insn_ia64 (bfd_vma, disassemble_info *);
extern int print_insn_ip2k (bfd_vma, disassemble_info *);
extern int print_insn_iq2000 (bfd_vma, disassemble_info *);
extern int print_insn_little_nios2 (bfd_vma, disassemble_info *);
extern int print_insn_riscv (bfd_vma, disassemble_info *);
extern int print_insn_little_arm (bfd_vma, disassemble_info *);
extern int print_insn_little_mips (bfd_vma, disassemble_info *);
extern int print_insn_little_powerpc (bfd_vma, disassemble_info *);
extern int print_insn_little_score (bfd_vma, disassemble_info *);
extern int print_insn_lm32 (bfd_vma, disassemble_info *);
Expand Down Expand Up @@ -78,6 +85,7 @@ extern int print_insn_pru (bfd_vma, disassemble_info *);
extern int print_insn_rs6000 (bfd_vma, disassemble_info *);
extern int print_insn_s390 (bfd_vma, disassemble_info *);
extern int print_insn_sh64 (bfd_vma, disassemble_info *);
extern int print_insn_spu (bfd_vma, disassemble_info *);
extern int print_insn_tic30 (bfd_vma, disassemble_info *);
extern int print_insn_tic4x (bfd_vma, disassemble_info *);
extern int print_insn_tic54x (bfd_vma, disassemble_info *);
Expand Down
2 changes: 1 addition & 1 deletion opcodes/ia64-dis.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include "sysdep.h"
#include <assert.h>

#include "dis-asm.h"
#include "disassemble.h"
#include "opcode/ia64.h"

#define NELEMS(a) ((int) (sizeof (a) / sizeof (a[0])))
Expand Down
2 changes: 1 addition & 1 deletion opcodes/mips-dis.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
MA 02110-1301, USA. */

#include "sysdep.h"
#include "dis-asm.h"
#include "disassemble.h"
#include "libiberty.h"
#include "opcode/mips.h"
#include "opintl.h"
Expand Down
2 changes: 1 addition & 1 deletion opcodes/spu-dis.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

#include "sysdep.h"
#include <stdio.h>
#include "dis-asm.h"
#include "disassemble.h"
#include "opcode/spu.h"

/* This file provides a disassembler function which uses
Expand Down

0 comments on commit 6394c60

Please sign in to comment.