# Copyright (C) 2003-2020 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 . # This file was written by Michael Snyder (msnyder@redhat.com) if ![istarget "h8300*-*-*"] { verbose "Tests ignored for all but h8300s based targets." return } set testfile "t07_ari3" set srcfile ${srcdir}/${subdir}/${testfile}.s set objfile ${objdir}/${subdir}/${testfile}.o set binfile ${objdir}/${subdir}/${testfile}.x set asm-flags "" set link-flags "-m h8300sxelf" if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then { untested "failed to assemble" return -1 } if {[target_link $objfile $binfile "${link-flags}"] != ""} then { untested "failed to link" return -1 } gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load $binfile gdb_test "x /i start" "neg.b\tr1h" \ "neg.b r1h" gdb_test "x" "neg.b\t@er1" \ "neg.b @er1" gdb_test "x" "neg.b\t@\\(0x3(:2|),er1\\)" \ "neg.b @(0x3:2,er1)" gdb_test "x" "neg.b\t@er1\\+" \ "neg.b @er1+" gdb_test "x" "neg.b\t@-er1" \ "neg.b @-er1" gdb_test "x" "neg.b\t@\\+er1" \ "neg.b @+er1" gdb_test "x" "neg.b\t@er1-" \ "neg.b @er1-" gdb_test "x" "neg.b\t@\\(0x1234(:16|),er1\\)" \ "neg.b @(0x1234:16,er1)" gdb_test "x" "neg.b\t@\\(0x12345678(:32|),er1\\)" \ "neg.b @(0x12345678:32,er1)" gdb_test "x" "neg.b\t@\\(0x1234(:16|),r2l.b\\)" \ "neg.b @(0x1234:16,r2l.b)" gdb_test "x" "neg.b\t@\\(0x1234(:16|),r2.w\\)" \ "neg.b @(0x1234:16,r2.w)" gdb_test "x" "neg.b\t@\\(0x1234(:16|),er2.l\\)" \ "neg.b @(0x1234:16,er2.l)" gdb_test "x" "neg.b\t@\\(0x12345678(:32|),r2l.b\\)" \ "neg.b @(0x12345678:32,r2l.b)" gdb_test "x" "neg.b\t@\\(0x12345678(:32|),r2.w\\)" \ "neg.b @(0x12345678:32,r2.w)" gdb_test "x" "neg.b\t@\\(0x12345678(:32|),er2.l\\)" \ "neg.b @(0x12345678:32,er2.l)" gdb_test "x" "neg.b\t@0x12(:8|)" \ "neg.b @0x12:8" gdb_test "x" "neg.b\t@0x1234(:16|)" \ "neg.b @0x1234:16" gdb_test "x" "neg.b\t@0x12345678(:32|)" \ "neg.b @0x12345678:32" gdb_test "x" "neg.w\tr1" \ "neg.w r1" gdb_test "x" "neg.w\t@er1" \ "neg.w @er1" gdb_test "x" "neg.w\t@\\(0x6(:2|),er1\\)" \ "neg.w @(0x6:2,er1)" gdb_test "x" "neg.w\t@er1\\+" \ "neg.w @er1+" gdb_test "x" "neg.w\t@-er1" \ "neg.w @-er1" gdb_test "x" "neg.w\t@\\+er1" \ "neg.w @+er1" gdb_test "x" "neg.w\t@er1-" \ "neg.w @er1-" gdb_test "x" "neg.w\t@\\(0x1234(:16|),er1\\)" \ "neg.w @(0x1234:16,er1)" gdb_test "x" "neg.w\t@\\(0x12345678(:32|),er1\\)" \ "neg.w @(0x12345678:32,er1)" gdb_test "x" "neg.w\t@\\(0x1234(:16|),r2l.b\\)" \ "neg.w @(0x1234:16,r2l.b)" gdb_test "x" "neg.w\t@\\(0x1234(:16|),r2.w\\)" \ "neg.w @(0x1234:16,r2.w)" gdb_test "x" "neg.w\t@\\(0x1234(:16|),er2.l\\)" \ "neg.w @(0x1234:16,er2.l)" gdb_test "x" "neg.w\t@\\(0x12345678(:32|),r2l.b\\)" \ "neg.w @(0x12345678:32,r2l.b)" gdb_test "x" "neg.w\t@\\(0x12345678(:32|),r2.w\\)" \ "neg.w @(0x12345678:32,r2.w)" gdb_test "x" "neg.w\t@\\(0x12345678(:32|),er2.l\\)" \ "neg.w @(0x12345678:32,er2.l)" gdb_test "x" "neg.w\t@0x1234(:16|)" \ "neg.w @0x1234:16" gdb_test "x" "neg.w\t@0x12345678(:32|)" \ "neg.w @0x12345678:32" gdb_test "x" "neg.l\ter1" \ "neg.l er1" gdb_test "x" "neg.l\t@er1" \ "neg.l @er1" gdb_test "x" "neg.l\t@\\(0xc(:2|),er1\\)" \ "neg.l @(0xc:2,er1)" gdb_test "x" "neg.l\t@er1\\+" \ "neg.l @er1+" gdb_test "x" "neg.l\t@-er1" \ "neg.l @-er1" gdb_test "x" "neg.l\t@\\+er1" \ "neg.l @+er1" gdb_test "x" "neg.l\t@er1-" \ "neg.l @er1-" gdb_test "x" "neg.l\t@\\(0x1234(:16|),er1\\)" \ "neg.l @(0x1234:16,er1)" gdb_test "x" "neg.l\t@\\(0x12345678(:32|),er1\\)" \ "neg.l @(0x12345678:32,er1)" gdb_test "x" "neg.l\t@\\(0x1234(:16|),r2l.b\\)" \ "neg.l @(0x1234:16,r2l.b)" gdb_test "x" "neg.l\t@\\(0x1234(:16|),r2.w\\)" \ "neg.l @(0x1234:16,r2.w)" gdb_test "x" "neg.l\t@\\(0x1234(:16|),er2.l\\)" \ "neg.l @(0x1234:16,er2.l)" gdb_test "x" "neg.l\t@\\(0x12345678(:32|),r2l.b\\)" \ "neg.l @(0x12345678:32,r2l.b)" gdb_test "x" "neg.l\t@\\(0x12345678(:32|),r2.w\\)" \ "neg.l @(0x12345678:32,r2.w)" gdb_test "x" "neg.l\t@\\(0x12345678(:32|),er2.l\\)" \ "neg.l @(0x12345678:32,er2.l)" gdb_test "x" "neg.l\t@0x1234(:16|)" \ "neg.l @0x1234:16" gdb_test "x" "neg.l\t@0x12345678(:32|)" \ "neg.l @0x12345678:32" gdb_test "x" "tas\t@er1" \ "tas @er1" gdb_test "x" "extu.w\tr1" \ "extu.w r1" gdb_test "x" "extu.w\t@er1" \ "extu.w @er1" gdb_test "x" "extu.w\t@\\(0x6(:2|),er1\\)" \ "extu.w @(0x6:2,er1)" gdb_test "x" "extu.w\t@er1\\+" \ "extu.w @er1+" gdb_test "x" "extu.w\t@-er1" \ "extu.w @-er1" gdb_test "x" "extu.w\t@\\+er1" \ "extu.w @+er1" gdb_test "x" "extu.w\t@er1-" \ "extu.w @er1-" gdb_test "x" "extu.w\t@\\(0x1234(:16|),er1\\)" \ "extu.w @(0x1234:16,er1)" gdb_test "x" "extu.w\t@\\(0x12345678(:32|),er1\\)" \ "extu.w @(0x12345678:32,er1)" gdb_test "x" "extu.w\t@\\(0x1234(:16|),r2l.b\\)" \ "extu.w @(0x1234:16,r2l.b)" gdb_test "x" "extu.w\t@\\(0x1234(:16|),r2.w\\)" \ "extu.w @(0x1234:16,r2.w)" gdb_test "x" "extu.w\t@\\(0x1234(:16|),er2.l\\)" \ "extu.w @(0x1234:16,er2.l)" gdb_test "x" "extu.w\t@\\(0x12345678(:32|),r2l.b\\)" \ "extu.w @(0x12345678:32,r2l.b)" gdb_test "x" "extu.w\t@\\(0x12345678(:32|),r2.w\\)" \ "extu.w @(0x12345678:32,r2.w)" gdb_test "x" "extu.w\t@\\(0x12345678(:32|),er2.l\\)" \ "extu.w @(0x12345678:32,er2.l)" gdb_test "x" "extu.w\t@0x1234(:16|)" \ "extu.w @0x1234:16" gdb_test "x" "extu.w\t@0x12345678(:32|)" \ "extu.w @0x12345678:32" gdb_test "x" "extu.l\ter1" \ "extu.l er1" gdb_test "x" "extu.l\t@er1" \ "extu.l @er1" gdb_test "x" "extu.l\t@\\(0xc(:2|),er1\\)" \ "extu.l @(0xc:2,er1)" gdb_test "x" "extu.l\t@er1\\+" \ "extu.l @er1+" gdb_test "x" "extu.l\t@-er1" \ "extu.l @-er1" gdb_test "x" "extu.l\t@\\+er1" \ "extu.l @+er1" gdb_test "x" "extu.l\t@er1-" \ "extu.l @er1-" gdb_test "x" "extu.l\t@\\(0x1234(:16|),er1\\)" \ "extu.l @(0x1234:16,er1)" gdb_test "x" "extu.l\t@\\(0x12345678(:32|),er1\\)" \ "extu.l @(0x12345678:32,er1)" gdb_test "x" "extu.l\t@\\(0x1234(:16|),r2l.b\\)" \ "extu.l @(0x1234:16,r2l.b)" gdb_test "x" "extu.l\t@\\(0x1234(:16|),r2.w\\)" \ "extu.l @(0x1234:16,r2.w)" gdb_test "x" "extu.l\t@\\(0x1234(:16|),er2.l\\)" \ "extu.l @(0x1234:16,er2.l)" gdb_test "x" "extu.l\t@\\(0x12345678(:32|),r2l.b\\)" \ "extu.l @(0x12345678:32,r2l.b)" gdb_test "x" "extu.l\t@\\(0x12345678(:32|),r2.w\\)" \ "extu.l @(0x12345678:32,r2.w)" gdb_test "x" "extu.l\t@\\(0x12345678(:32|),er2.l\\)" \ "extu.l @(0x12345678:32,er2.l)" gdb_test "x" "extu.l\t@0x1234(:16|)" \ "extu.l @0x1234:16" gdb_test "x" "extu.l\t@0x12345678(:32|)" \ "extu.l @0x12345678:32" gdb_test "x" "extu.l\t#2,er1" \ "extu.l #2,er1" gdb_test "x" "extu.l\t#2,@er1" \ "extu.l #2,@er1" gdb_test "x" "extu.l\t#2,@\\(0xc(:2|),er1\\)" \ "extu.l #2,@(0xc:2,er1)" gdb_test "x" "extu.l\t#2,@er1\\+" \ "extu.l #2,@er1+" gdb_test "x" "extu.l\t#2,@-er1" \ "extu.l #2,@-er1" gdb_test "x" "extu.l\t#2,@\\+er1" \ "extu.l #2,@+er1" gdb_test "x" "extu.l\t#2,@er1-" \ "extu.l #2,@er1-" gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),er1\\)" \ "extu.l #2,@(0x1234:16,er1)" gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),er1\\)" \ "extu.l #2,@(0x12345678:32,er1)" gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \ "extu.l #2,@(0x1234:16,r2l.b)" gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),r2.w\\)" \ "extu.l #2,@(0x1234:16,r2.w)" gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),er2.l\\)" \ "extu.l #2,@(0x1234:16,er2.l)" gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \ "extu.l #2,@(0x12345678:32,r2l.b)" gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \ "extu.l #2,@(0x12345678:32,r2.w)" gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \ "extu.l #2,@(0x12345678:32,er2.l)" gdb_test "x" "extu.l\t#2,@0x1234(:16|)" \ "extu.l #2,@0x1234:16" gdb_test "x" "extu.l\t#2,@0x12345678(:32|)" \ "extu.l #2,@0x12345678:32" gdb_test "x" "exts.w\tr1" \ "exts.w r1" gdb_test "x" "exts.w\t@er1" \ "exts.w @er1" gdb_test "x" "exts.w\t@\\(0x6(:2|),er1\\)" \ "exts.w @(0x6:2,er1)" gdb_test "x" "exts.w\t@er1\\+" \ "exts.w @er1+" gdb_test "x" "exts.w\t@-er1" \ "exts.w @-er1" gdb_test "x" "exts.w\t@\\+er1" \ "exts.w @+er1" gdb_test "x" "exts.w\t@er1-" \ "exts.w @er1-" gdb_test "x" "exts.w\t@\\(0x1234(:16|),er1\\)" \ "exts.w @(0x1234:16,er1)" gdb_test "x" "exts.w\t@\\(0x12345678(:32|),er1\\)" \ "exts.w @(0x12345678:32,er1)" gdb_test "x" "exts.w\t@\\(0x1234(:16|),r2l.b\\)" \ "exts.w @(0x1234:16,r2l.b)" gdb_test "x" "exts.w\t@\\(0x1234(:16|),r2.w\\)" \ "exts.w @(0x1234:16,r2.w)" gdb_test "x" "exts.w\t@\\(0x1234(:16|),er2.l\\)" \ "exts.w @(0x1234:16,er2.l)" gdb_test "x" "exts.w\t@\\(0x12345678(:32|),r2l.b\\)" \ "exts.w @(0x12345678:32,r2l.b)" gdb_test "x" "exts.w\t@\\(0x12345678(:32|),r2.w\\)" \ "exts.w @(0x12345678:32,r2.w)" gdb_test "x" "exts.w\t@\\(0x12345678(:32|),er2.l\\)" \ "exts.w @(0x12345678:32,er2.l)" gdb_test "x" "exts.w\t@0x1234(:16|)" \ "exts.w @0x1234:16" gdb_test "x" "exts.w\t@0x12345678(:32|)" \ "exts.w @0x12345678:32" gdb_test "x" "exts.l\ter1" \ "exts.l er1" gdb_test "x" "exts.l\t@er1" \ "exts.l @er1" gdb_test "x" "exts.l\t@\\(0xc(:2|),er1\\)" \ "exts.l @(0xc:2,er1)" gdb_test "x" "exts.l\t@er1\\+" \ "exts.l @er1+" gdb_test "x" "exts.l\t@-er1" \ "exts.l @-er1" gdb_test "x" "exts.l\t@\\+er1" \ "exts.l @+er1" gdb_test "x" "exts.l\t@er1-" \ "exts.l @er1-" gdb_test "x" "exts.l\t@\\(0x1234(:16|),er1\\)" \ "exts.l @(0x1234:16,er1)" gdb_test "x" "exts.l\t@\\(0x12345678(:32|),er1\\)" \ "exts.l @(0x12345678:32,er1)" gdb_test "x" "exts.l\t@\\(0x1234(:16|),r2l.b\\)" \ "exts.l @(0x1234:16,r2l.b)" gdb_test "x" "exts.l\t@\\(0x1234(:16|),r2.w\\)" \ "exts.l @(0x1234:16,r2.w)" gdb_test "x" "exts.l\t@\\(0x1234(:16|),er2.l\\)" \ "exts.l @(0x1234:16,er2.l)" gdb_test "x" "exts.l\t@\\(0x12345678(:32|),r2l.b\\)" \ "exts.l @(0x12345678:32,r2l.b)" gdb_test "x" "exts.l\t@\\(0x12345678(:32|),r2.w\\)" \ "exts.l @(0x12345678:32,r2.w)" gdb_test "x" "exts.l\t@\\(0x12345678(:32|),er2.l\\)" \ "exts.l @(0x12345678:32,er2.l)" gdb_test "x" "exts.l\t@0x1234(:16|)" \ "exts.l @0x1234:16" gdb_test "x" "exts.l\t@0x12345678(:32|)" \ "exts.l @0x12345678:32" gdb_test "x" "exts.l\t#2,er1" \ "exts.l #2,er1" gdb_test "x" "exts.l\t#2,@er1" \ "exts.l #2,@er1" gdb_test "x" "exts.l\t#2,@\\(0xc(:2|),er1\\)" \ "exts.l #2,@(0xc:2,er1)" gdb_test "x" "exts.l\t#2,@er1\\+" \ "exts.l #2,@er1+" gdb_test "x" "exts.l\t#2,@-er1" \ "exts.l #2,@-er1" gdb_test "x" "exts.l\t#2,@\\+er1" \ "exts.l #2,@+er1" gdb_test "x" "exts.l\t#2,@er1-" \ "exts.l #2,@er1-" gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),er1\\)" \ "exts.l #2,@(0x1234:16,er1)" gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),er1\\)" \ "exts.l #2,@(0x12345678:32,er1)" gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \ "exts.l #2,@(0x1234:16,r2l.b)" gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),r2.w\\)" \ "exts.l #2,@(0x1234:16,r2.w)" gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),er2.l\\)" \ "exts.l #2,@(0x1234:16,er2.l)" gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \ "exts.l #2,@(0x12345678:32,r2l.b)" gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \ "exts.l #2,@(0x12345678:32,r2.w)" gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \ "exts.l #2,@(0x12345678:32,er2.l)" gdb_test "x" "exts.l\t#2,@0x1234(:16|)" \ "exts.l #2,@0x1234:16" gdb_test "x" "exts.l\t#2,@0x12345678(:32|)" \ "exts.l #2,@0x12345678:32"