1# Copyright (C) 2003-2023 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# This file was written by Michael Snyder (msnyder@redhat.com) 17 18if ![istarget "h8300*-*-*"] { 19 verbose "Tests ignored for all but h8300s based targets." 20 return 21} 22 23 24set testfile "t06_ari2" 25set srcfile ${srcdir}/${subdir}/${testfile}.s 26set objfile ${objdir}/${subdir}/${testfile}.o 27set binfile ${objdir}/${subdir}/${testfile}.x 28 29set asm-flags "" 30set link-flags "-m h8300sxelf" 31 32 33if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} { 34 untested "failed to assemble" 35 return -1 36} 37 38if {[target_link $objfile $binfile "${link-flags}"] != ""} { 39 untested "failed to link" 40 return -1 41} 42 43gdb_start 44gdb_reinitialize_dir $srcdir/$subdir 45gdb_load $binfile 46 47gdb_test "x /i start" "addx(.b|)\t#0x12(:8|),r1h" \ 48 "addx.b #0x12:8,r1h" 49gdb_test "x" "addx(.b|)\t#0x12(:8|),@er1" \ 50 "addx.b #0x12:8,@er1" 51gdb_test "x" "addx(.b|)\t#0x12(:8|),@er1-" \ 52 "addx.b #0x12:8,@er1-" 53gdb_test "x" "addx(.b|)\tr3h,r1h" \ 54 "addx.b r3h,r1h" 55gdb_test "x" "addx(.b|)\tr3h,@er1" \ 56 "addx.b r3h,@er1" 57gdb_test "x" "addx(.b|)\tr3h,@er1-" \ 58 "addx.b r3h,@er1-" 59gdb_test "x" "addx(.b|)\t@er3,r1h" \ 60 "addx.b @er3,r1h" 61gdb_test "x" "addx(.b|)\t@er3,@er1" \ 62 "addx.b @er3,@er1" 63gdb_test "x" "addx(.b|)\t@er3-,r1h" \ 64 "addx.b @er3-,r1h" 65gdb_test "x" "addx(.b|)\t@er3-,@er1-" \ 66 "addx.b @er3-,@er1-" 67gdb_test "x" "addx.w\t#0x1234(:16|),r1" \ 68 "addx.w #0x1234:16,r1" 69gdb_test "x" "addx.w\t#0x1234(:16|),@er1" \ 70 "addx.w #0x1234:16,@er1" 71gdb_test "x" "addx.w\t#0x1234(:16|),@er1-" \ 72 "addx.w #0x1234:16,@er1-" 73gdb_test "x" "addx.w\tr3,r1" \ 74 "addx.w r3,r1" 75gdb_test "x" "addx.w\tr3,@er1" \ 76 "addx.w r3,@er1" 77gdb_test "x" "addx.w\tr3,@er1-" \ 78 "addx.w r3,@er1-" 79gdb_test "x" "addx.w\t@er3,r1" \ 80 "addx.w @er3,r1" 81gdb_test "x" "addx.w\t@er3,@er1" \ 82 "addx.w @er3,@er1" 83gdb_test "x" "addx.w\t@er3-,r1" \ 84 "addx.w @er3-,r1" 85gdb_test "x" "addx.w\t@er3-,@er1-" \ 86 "addx.w @er3-,@er1-" 87gdb_test "x" "addx.l\t#0x12345678(:32|),er1" \ 88 "addx.l #0x12345678:32,er1" 89gdb_test "x" "addx.l\t#0x12345678(:32|),@er1" \ 90 "addx.l #0x12345678:32,@er1" 91gdb_test "x" "addx.l\t#0x12345678(:32|),@er1-" \ 92 "addx.l #0x12345678:32,@er1-" 93gdb_test "x" "addx.l\ter3,er1" \ 94 "addx.l er3,er1" 95gdb_test "x" "addx.l\ter3,@er1" \ 96 "addx.l er3,@er1" 97gdb_test "x" "addx.l\ter3,@er1-" \ 98 "addx.l er3,@er1-" 99gdb_test "x" "addx.l\t@er3,er1" \ 100 "addx.l @er3,er1" 101gdb_test "x" "addx.l\t@er3,@er1" \ 102 "addx.l @er3,@er1" 103gdb_test "x" "addx.l\t@er3-,er1" \ 104 "addx.l @er3-,er1" 105gdb_test "x" "addx.l\t@er3-,@er1-" \ 106 "addx.l @er3-,@er1-" 107gdb_test "x" "subx(.b|)\t#0x12(:8|),r1h" \ 108 "subx.b #0x12:8,r1h" 109gdb_test "x" "subx(.b|)\t#0x12(:8|),@er1" \ 110 "subx.b #0x12:8,@er1" 111gdb_test "x" "subx(.b|)\t#0x12(:8|),@er1-" \ 112 "subx.b #0x12:8,@er1-" 113gdb_test "x" "subx(.b|)\tr3h,r1h" \ 114 "subx.b r3h,r1h" 115gdb_test "x" "subx(.b|)\tr3h,@er1" \ 116 "subx.b r3h,@er1" 117gdb_test "x" "subx(.b|)\tr3h,@er1-" \ 118 "subx.b r3h,@er1-" 119gdb_test "x" "subx(.b|)\t@er3,r1h" \ 120 "subx.b @er3,r1h" 121gdb_test "x" "subx(.b|)\t@er3,@er1" \ 122 "subx.b @er3,@er1" 123gdb_test "x" "subx(.b|)\t@er3-,r1h" \ 124 "subx.b @er3-,r1h" 125gdb_test "x" "subx(.b|)\t@er3-,@er1-" \ 126 "subx.b @er3-,@er1-" 127gdb_test "x" "subx.w\t#0x1234(:16|),r1" \ 128 "subx.w #0x1234:16,r1" 129gdb_test "x" "subx.w\t#0x1234(:16|),@er1" \ 130 "subx.w #0x1234:16,@er1" 131gdb_test "x" "subx.w\t#0x1234(:16|),@er1-" \ 132 "subx.w #0x1234:16,@er1-" 133gdb_test "x" "subx.w\tr3,r1" \ 134 "subx.w r3,r1" 135gdb_test "x" "subx.w\tr3,@er1" \ 136 "subx.w r3,@er1" 137gdb_test "x" "subx.w\tr3,@er1-" \ 138 "subx.w r3,@er1-" 139gdb_test "x" "subx.w\t@er3,r1" \ 140 "subx.w @er3,r1" 141gdb_test "x" "subx.w\t@er3,@er1" \ 142 "subx.w @er3,@er1" 143gdb_test "x" "subx.w\t@er3-,r1" \ 144 "subx.w @er3-,r1" 145gdb_test "x" "subx.w\t@er3-,@er1-" \ 146 "subx.w @er3-,@er1-" 147gdb_test "x" "subx.l\t#0x12345678(:32|),er1" \ 148 "subx.l #0x12345678:32,er1" 149gdb_test "x" "subx.l\t#0x12345678(:32|),@er1" \ 150 "subx.l #0x12345678:32,@er1" 151gdb_test "x" "subx.l\t#0x12345678(:32|),@er1-" \ 152 "subx.l #0x12345678:32,@er1-" 153gdb_test "x" "subx.l\ter3,er1" \ 154 "subx.l er3,er1" 155gdb_test "x" "subx.l\ter3,@er1" \ 156 "subx.l er3,@er1" 157gdb_test "x" "subx.l\ter3,@er1-" \ 158 "subx.l er3,@er1-" 159gdb_test "x" "subx.l\t@er3,er1" \ 160 "subx.l @er3,er1" 161gdb_test "x" "subx.l\t@er3,@er1" \ 162 "subx.l @er3,@er1" 163gdb_test "x" "subx.l\t@er3-,er1" \ 164 "subx.l @er3-,er1" 165gdb_test "x" "subx.l\t@er3-,@er1-" \ 166 "subx.l @er3-,@er1-" 167gdb_test "x" "inc(.b|)\tr1h" \ 168 "inc.b r1h" 169gdb_test "x" "inc(.w|)\t#1,r1" \ 170 "inc.w #1,r1" 171gdb_test "x" "inc(.w|)\t#2,r1" \ 172 "inc.w #2,r1" 173gdb_test "x" "inc(.l|)\t#1,er1" \ 174 "inc.l #1,er1" 175gdb_test "x" "inc(.l|)\t#2,er1" \ 176 "inc.l #2,er1" 177gdb_test "x" "dec(.b|)\tr1h" \ 178 "dec.b r1h" 179gdb_test "x" "dec(.w|)\t#1,r1" \ 180 "dec.w #1,r1" 181gdb_test "x" "dec(.w|)\t#2,r1" \ 182 "dec.w #2,r1" 183gdb_test "x" "dec(.l|)\t#1,er1" \ 184 "dec.l #1,er1" 185gdb_test "x" "dec(.l|)\t#2,er1" \ 186 "dec.l #2,er1" 187gdb_test "x" "adds(.l|)\t#1,er1" \ 188 "adds.l #1,er1" 189gdb_test "x" "adds(.l|)\t#2,er1" \ 190 "adds.l #2,er1" 191gdb_test "x" "adds(.l|)\t#4,er1" \ 192 "adds.l #4,er1" 193gdb_test "x" "subs(.l|)\t#1,er1" \ 194 "subs.l #1,er1" 195gdb_test "x" "subs(.l|)\t#2,er1" \ 196 "subs.l #2,er1" 197gdb_test "x" "subs(.l|)\t#4,er1" \ 198 "subs.l #4,er1" 199gdb_test "x" "daa(.b|)\tr1h" \ 200 "daa.b r1h" 201gdb_test "x" "das(.b|)\tr1h" \ 202 "das.b r1h" 203gdb_test "x" "mulxu.b\t#0xf(:4|),r1" \ 204 "mulxu.b #0xf:4,r1" 205gdb_test "x" "mulxu.b\tr3h,r1" \ 206 "mulxu.b r3h,r1" 207gdb_test "x" "mulxu.w\t#0xf(:4|),er1" \ 208 "mulxu.w #0xf:4,er1" 209gdb_test "x" "mulxu.w\tr3,er1" \ 210 "mulxu.w r3,er1" 211gdb_test "x" "divxu.b\t#0xf(:4|),r1" \ 212 "divxu.b #0xf:4,r1" 213gdb_test "x" "divxu.b\tr3h,r1" \ 214 "divxu.b r3h,r1" 215gdb_test "x" "divxu.w\t#0xf(:4|),er1" \ 216 "divxu.w #0xf:4,er1" 217gdb_test "x" "divxu.w\tr3,er1" \ 218 "divxu.w r3,er1" 219gdb_test "x" "mulxs.b\t#0xf(:4|),r1" \ 220 "mulxs.b #0xf:4,r1" 221gdb_test "x" "mulxs.b\tr3h,r1" \ 222 "mulxs.b r3h,r1" 223gdb_test "x" "mulxs.w\t#0xf(:4|),er1" \ 224 "mulxs.w #0xf:4,er1" 225gdb_test "x" "mulxs.w\tr3,er1" \ 226 "mulxs.w r3,er1" 227gdb_test "x" "divxs.b\t#0xf(:4|),r1" \ 228 "divxs.b #0xf:4,r1" 229gdb_test "x" "divxs.b\tr3h,r1" \ 230 "divxs.b r3h,r1" 231gdb_test "x" "divxs.w\t#0xf(:4|),er1" \ 232 "divxs.w #0xf:4,er1" 233gdb_test "x" "divxs.w\tr3,er1" \ 234 "divxs.w r3,er1" 235gdb_test "x" "mulu.w\t#0xf(:4|),r1" \ 236 "mulu.w #0xf:4,r1" 237gdb_test "x" "mulu.w\tr3,r1" \ 238 "mulu.w r3,r1" 239gdb_test "x" "mulu.l\t#0xf(:4|),er1" \ 240 "mulu.l #0xf:4,er1" 241gdb_test "x" "mulu.l\ter3,er1" \ 242 "mulu.l er3,er1" 243gdb_test "x" "mulu/u.l\t#0xf(:4|),er1" \ 244 "mulu/u.l #0xf:4,er1" 245gdb_test "x" "mulu/u.l\ter3,er1" \ 246 "mulu/u.l er3,er1" 247gdb_test "x" "muls.w\t#0xf(:4|),r1" \ 248 "muls.w #0xf:4,r1" 249gdb_test "x" "muls.w\tr3,r1" \ 250 "muls.w r3,r1" 251gdb_test "x" "muls.l\t#0xf(:4|),er1" \ 252 "muls.l #0xf:4,er1" 253gdb_test "x" "muls.l\ter3,er1" \ 254 "muls.l er3,er1" 255gdb_test "x" "muls/u.l\t#0xf(:4|),er1" \ 256 "muls/u.l #0xf:4,er1" 257gdb_test "x" "muls/u.l\ter3,er1" \ 258 "muls/u.l er3,er1" 259gdb_test "x" "divu.w\t#0xf(:4|),r1" \ 260 "divu.w #0xf:4,r1" 261gdb_test "x" "divu.w\tr3,r1" \ 262 "divu.w r3,r1" 263gdb_test "x" "divu.l\t#0xf(:4|),er1" \ 264 "divu.l #0xf:4,er1" 265gdb_test "x" "divu.l\ter3,er1" \ 266 "divu.l er3,er1" 267gdb_test "x" "divs.w\t#0xf(:4|),r1" \ 268 "divs.w #0xf:4,r1" 269gdb_test "x" "divs.w\tr3,r1" \ 270 "divs.w r3,r1" 271gdb_test "x" "divs.l\t#0xf(:4|),er1" \ 272 "divs.l #0xf:4,er1" 273gdb_test "x" "divs.l\ter3,er1" \ 274 "divs.l er3,er1" 275