Refactor disassembler selection

Nowadays, opcodes/disassemble.c:disassembler selects the proper
disassembler according to ABFD only.  However, it actually
selects disassemblers according to arch, mach, endianess, and
abfd.  This patch adds them to the parameters of disassembler,
so that its caller can still select disassemblers in case that
abfd is NULL (a typical case in GDB).

There isn't any functionality change.

binutils:

2017-05-24  Yao Qi  <yao.qi@linaro.org>

	* objdump.c (disassemble_data): Caller update.

include:

2017-05-24  Yao Qi  <yao.qi@linaro.org>

	* dis-asm.h (disassembler): Update declaration.

opcodes:

2017-05-24  Yao Qi  <yao.qi@linaro.org>

	* disassemble.c (disassembler): Add arguments a, big and mach.
	Use them.

sim/common:

2017-05-24  Yao Qi  <yao.qi@linaro.org>

	* sim-trace.c (trace_disasm): Caller update.
This commit is contained in:
Yao Qi
2017-05-24 17:23:52 +01:00
parent 60fd657792
commit 003ca0fd22
8 changed files with 57 additions and 19 deletions

View File

@@ -2386,7 +2386,9 @@ disassemble_data (bfd *abfd)
}
/* Use libopcodes to locate a suitable disassembler. */
aux.disassemble_fn = disassembler (abfd);
aux.disassemble_fn = disassembler (bfd_get_arch (abfd),
bfd_big_endian (abfd),
bfd_get_mach (abfd), abfd);
if (!aux.disassemble_fn)
{
non_fatal (_("can't disassemble for architecture %s\n"),