arc: Add 'set disassembler-options' support

Implement ARC target support for passing options to the disassembler
through the command interface. e.g.:

gdb> set disassembler-options cpu=hs38_linux ...

gdb/ChangeLog:

	* NEWS: Document 'set disassembler-options' support for the ARC
	target.
	* arc-tdep.c (arc_gdbarch_init): Set
	'gdbarch_valid_disassembler_options'.

gdb/doc/ChangeLog:

	* gdb.texinfo (Source and Machine Code): Document 'set
	disassembler-options' support for the ARC target.

gdb/testsuite/ChangeLog:

	* gdb.arch/arc-disassembler-options.exp: New test.
	* gdb.arch/arc-disassembler-options.s: New test source.
This commit is contained in:
Shahab Vahedi 2021-05-05 23:07:38 +02:00
parent 30569fbb57
commit ae61ef2c56
8 changed files with 92 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2021-06-05 Shahab Vahedi <shahab@synopsys.com>
* NEWS: Document 'set disassembler-options' support for the ARC
target.
* arc-tdep.c (arc_gdbarch_init): Set
'gdbarch_valid_disassembler_options'.
2021-06-04 Tom Tromey <tromey@adacore.com>
* dwarf2/read.h (dwarf2_fetch_die_type_sect_off): Add 'var_name'

View File

@ -3,6 +3,9 @@
*** Changes since GDB 10
* The 'set disassembler-options' command now supports specifying options
for the ARC target.
* GDB now supports general memory tagging functionality if the underlying
architecture supports the proper primitives and hooks. Currently this is
enabled only for AArch64 MTE.

View File

@ -2434,11 +2434,13 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
arc_disassembler_options = NULL;
break;
}
set_gdbarch_disassembler_options (gdbarch,
&arc_disassembler_options);
}
}
set_gdbarch_disassembler_options (gdbarch, &arc_disassembler_options);
set_gdbarch_valid_disassembler_options (gdbarch,
disassembler_options_arc ());
tdesc_use_registers (gdbarch, tdesc, std::move (tdesc_data));
return gdbarch;

View File

@ -1,3 +1,8 @@
2021-06-05 Shahab Vahedi <shahab@synopsys.com>
* gdb.texinfo (Source and Machine Code): Document 'set
disassembler-options' support for the ARC target.
2021-06-04 Hannes Domani <ssbssa@yahoo.de>
* python.texi (TUI Windows In Python): Document Window.click.

View File

@ -9879,8 +9879,8 @@ The default value is the empty string.
If it is necessary to specify more than one disassembler option, then
multiple options can be placed together into a comma separated list.
Currently this command is only supported on targets ARM, MIPS, PowerPC
and S/390.
Currently this command is only supported on targets ARC, ARM, MIPS,
PowerPC and S/390.
@kindex show disassembler-options
@item show disassembler-options

View File

@ -1,3 +1,8 @@
2021-06-05 Shahab Vahedi <shahab@synopsys.com>
* gdb.arch/arc-disassembler-options.exp: New test.
* gdb.arch/arc-disassembler-options.s: New test source.
2021-06-04 Tom Tromey <tromey@adacore.com>
* gdb.ada/array_of_symbolic_length.exp: New file.

View File

@ -0,0 +1,45 @@
# Copyright 2021 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Test ARC disassembler options.
if { ![istarget "arc-*-*"] } then {
verbose "Skipping ARC disassembler option test."
return
}
standard_testfile .s
set objfile [standard_output_file ${testfile}.o]
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {}] \
!= "" } {
return
}
clean_restart ${objfile}
proc arc_disassemble_test { func insn mesg } {
gdb_test "disassemble $func" \
"Dump of assembler code for function $func:\r\n\
\[^:\]+:\t$insn\r\nEnd of assembler dump\." \
$mesg
}
# Verify defaults.
arc_disassemble_test foo "lr\tr0,\\\[tlbpd0\\\]" "disassemble default"
# Verify option overrides.
gdb_test "set disassembler-options cpu=arcem"
arc_disassemble_test foo "lr\tr0,\\\[1120\\\]" "disassemble cpu=arcem"

View File

@ -0,0 +1,21 @@
# This test is part of GDB, the GNU debugger.
#
# Copyright 2021 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
.globl foo
foo:
lr r0, [tlbpd0]
.end foo