1# Copyright 2018-2020 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16# Test MIPS disassembler options. 17 18if { ![istarget "mips*-*-*"] } then { 19 verbose "Skipping MIPS disassembler option tests." 20 return 21} 22 23standard_testfile .s 24set objfile [standard_output_file ${testfile}.o] 25 26if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {}] \ 27 != "" } { 28 return 29} 30 31clean_restart ${objfile} 32 33proc mips_disassemble_test { func insn mesg } { 34 gdb_test "disassemble $func" \ 35 "Dump of assembler code for function\ 36 $func:\r\n\[^:\]+:\t$insn\r\nEnd of assembler dump\." \ 37 $mesg 38} 39 40# Verify defaults. 41mips_disassemble_test foo "move\tv0,v1" "disassemble default" 42 43# Verify option overrides. 44gdb_test "set disassembler-options gpr-names=numeric" 45mips_disassemble_test foo "move\t\\\$2,\\\$3" "disassemble numeric, gpr-names" 46# Check multiple options too. 47gdb_test "set disassembler-options msa,reg-names=numeric,reg-names=r3000" 48mips_disassemble_test foo "move\t\\\$2,\\\$3" "disassemble numeric, reg-names" 49 50# Verify ABI overrides. 51mips_disassemble_test bar "move\t\\\$2,\\\$8" "disassemble ABI, numeric" 52gdb_test "set disassembler-options" 53gdb_test "set mips abi o32" 54mips_disassemble_test bar "move\tv0,t0" "disassemble ABI, o32" 55gdb_test "set mips abi n32" 56mips_disassemble_test bar "move\tv0,a4" "disassemble ABI, n32" 57gdb_test "set mips abi n64" 58mips_disassemble_test bar "move\tv0,a4" "disassemble ABI, n64" 59