# Copyright 2018-2019 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 . # 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"