Re: [PATCH v4] GDB PR tdep/8282: MIPS: Wire in `set disassembler-options'

Simon Marchi
2018-06-21T17:52:21Z

Hi Maciej,

This patch looks good from the GDB side (with one nit in the test below), but
somebody from binutils would need to review the bits in opcodes/include.

> Index: binutils/gdb/testsuite/gdb.arch/mips-disassembler-options.exp
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ binutils/gdb/testsuite/gdb.arch/mips-disassembler-options.exp 2018-06-20 15:58:24.888391112 +0100
> @@ -0,0 +1,58 @@
> +# Copyright 2018 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 MIPS disassembler options.
> +
> +if { ![istarget "mips*-*-*"] } then {
> + verbose "Skipping MIPS disassembler option tests."
> + return
> +}
> +
> +standard_testfile .s
> +set objfile [standard_output_file ${testfile}.o]
> +
> +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {}] \
> + != "" } {
> + return
> +}
> +
> +clean_restart ${objfile}
> +
> +proc mips_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.
> +mips_disassemble_test foo "move\tv0,v1" "disassemble default"
> +
> +# Verify option overrides.
> +gdb_test "set disassembler-options gpr-names=numeric"
> +mips_disassemble_test foo "move\t\\\$2,\\\$3" "disassemble numeric (gpr-names)"
> +# Check multiple options too.
> +gdb_test "set disassembler-options msa,reg-names=numeric,reg-names=r3000"
> +mips_disassemble_test foo "move\t\\\$2,\\\$3" "disassemble numeric (reg-names)"
> +
> +# Verify ABI overrides.
> +mips_disassemble_test bar "move\t\\\$2,\\\$8" "disassemble ABI (numeric)"
> +gdb_test "set disassembler-options"
> +gdb_test "set mips abi o32"
> +mips_disassemble_test bar "move\tv0,t0" "disassemble ABI (o32)"
> +gdb_test "set mips abi n32"
> +mips_disassemble_test bar "move\tv0,a4" "disassemble ABI (n32)"
> +gdb_test "set mips abi n64"
> +mips_disassemble_test bar "move\tv0,a4" "disassemble ABI (n64)"

Avoid parenthesis at the end of test names:

https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Do_not_use_.22tail_parentheses.22_on_test_messages

Simon