1 1.1 christos 2 1.11 christos # Copyright 1997-2024 Free Software Foundation, Inc. 3 1.1 christos 4 1.1 christos # This program is free software; you can redistribute it and/or modify 5 1.1 christos # it under the terms of the GNU General Public License as published by 6 1.1 christos # the Free Software Foundation; either version 3 of the License, or 7 1.1 christos # (at your option) any later version. 8 1.1 christos # 9 1.1 christos # This program is distributed in the hope that it will be useful, 10 1.1 christos # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 1.1 christos # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 1.1 christos # GNU General Public License for more details. 13 1.1 christos # 14 1.1 christos # You should have received a copy of the GNU General Public License 15 1.1 christos # along with this program. If not, see <http://www.gnu.org/licenses/>. 16 1.1 christos 17 1.1 christos # This file was written by Jeff Law. (law (at) cygnus.com) 18 1.1 christos 19 1.11 christos require {istarget "mn10300*-*-*"} 20 1.1 christos 21 1.1 christos global exec_output 22 1.1 christos 23 1.1 christos set testfile "am33" 24 1.1 christos set srcfile ${srcdir}/${subdir}/${testfile}.s 25 1.1 christos set binfile ${objdir}/${subdir}/${testfile} 26 1.1 christos if { [gdb_compile "${srcfile}" "${binfile}" object ""] != "" } { 27 1.7 christos untested "failed to compile" 28 1.1 christos return -1 29 1.1 christos } 30 1.1 christos 31 1.1 christos proc call_tests { } { 32 1.1 christos global gdb_prompt 33 1.1 christos global hex 34 1.1 christos global decimal 35 1.1 christos 36 1.1 christos send_gdb "x/8i call_tests\n" 37 1.1 christos gdb_expect { 38 1.1 christos -re " 39 1.1 christos .*call .*,.a2,a3,exreg0.,9.* 40 1.1 christos .*call .*,.a2,a3,exreg1.,9.* 41 1.1 christos .*call .*,.a2,a3,exother.,9.* 42 1.1 christos .*call .*,.d2,d3,a2,a3,other,exreg0,exreg1,exother.,9.* 43 1.1 christos .*call .*,.a2,a3,exreg0.,9.* 44 1.1 christos .*call .*,.a2,a3,exreg1.,9.* 45 1.1 christos .*call .*,.a2,a3,exother.,9.* 46 1.1 christos .*call .*,.d2,d3,a2,a3,other,exreg0,exreg1,exother.,9.* 47 1.1 christos .*$gdb_prompt $" { pass "call tests" } 48 1.1 christos -re "$gdb_prompt $" { fail "call tests" } 49 1.1 christos timeout { fail "(timeout) call tests" } 50 1.1 christos } 51 1.1 christos } 52 1.1 christos 53 1.1 christos proc movm_tests { } { 54 1.1 christos global gdb_prompt 55 1.1 christos global hex 56 1.1 christos global decimal 57 1.1 christos 58 1.1 christos send_gdb "x/16i movm_tests\n" 59 1.1 christos gdb_expect { 60 1.1 christos -re " 61 1.1 christos .*movm \\(sp\\),.a2,a3,exreg0.* 62 1.1 christos .*movm \\(sp\\),.a2,a3,exreg1.* 63 1.1 christos .*movm \\(sp\\),.a2,a3,exother.* 64 1.1 christos .*movm \\(sp\\),.d2,d3,a2,a3,other,exreg0,exreg1,exother.* 65 1.1 christos .*movm .a2,a3,exreg0.,\\(sp\\).* 66 1.1 christos .*movm .a2,a3,exreg1.,\\(sp\\).* 67 1.1 christos .*movm .a2,a3,exother.,\\(sp\\).* 68 1.1 christos .*movm .d2,d3,a2,a3,other,exreg0,exreg1,exother.,\\(sp\\).* 69 1.1 christos .*movm \\(usp\\),.a2,a3,exreg0.* 70 1.1 christos .*movm \\(usp\\),.a2,a3,exreg1.* 71 1.1 christos .*movm \\(usp\\),.a2,a3,exother.* 72 1.1 christos .*movm \\(usp\\),.d2,d3,a2,a3,other,exreg0,exreg1,exother.* 73 1.1 christos .*movm .a2,a3,exreg0.,\\(usp\\).* 74 1.1 christos .*movm .a2,a3,exreg1.,\\(usp\\).* 75 1.1 christos .*movm .a2,a3,exother.,\\(usp\\).* 76 1.1 christos .*movm .d2,d3,a2,a3,other,exreg0,exreg1,exother.,\\(usp\\).* 77 1.1 christos .*$gdb_prompt $" { pass "movm tests" } 78 1.1 christos -re "$gdb_prompt $" { fail "movm tests" } 79 1.1 christos timeout { fail "(timeout) movm tests" } 80 1.1 christos } 81 1.1 christos } 82 1.1 christos 83 1.1 christos proc misc_tests { } { 84 1.1 christos global gdb_prompt 85 1.1 christos global hex 86 1.1 christos global decimal 87 1.1 christos 88 1.1 christos send_gdb "x/11i misc_tests\n" 89 1.1 christos gdb_expect { 90 1.1 christos -re " 91 1.1 christos .*syscall 4.* 92 1.1 christos .*mcst9 d0.* 93 1.1 christos .*mcst48 d1.* 94 1.1 christos .*getchx d0.* 95 1.1 christos .*getclx d1.* 96 1.1 christos .*clr a1.* 97 1.1 christos .*sat16 a1,a0.* 98 1.1 christos .*mcste r7,r6.* 99 1.1 christos .*swap r5,r4.* 100 1.1 christos .*swaph r3,r2.* 101 1.1 christos .*swhw r1,r0.* 102 1.1 christos .*$gdb_prompt $" { pass "misc tests" } 103 1.1 christos -re "$gdb_prompt $" { fail "misc tests" } 104 1.1 christos timeout { fail "(timeout) misc tests" } 105 1.1 christos } 106 1.1 christos } 107 1.1 christos 108 1.1 christos proc mov_tests { } { 109 1.1 christos global gdb_prompt 110 1.1 christos global hex 111 1.1 christos global decimal 112 1.1 christos 113 1.1 christos send_gdb "x/45i mov_tests\n" 114 1.1 christos gdb_expect { 115 1.1 christos -re " 116 1.1 christos .*mov r0,r1.* 117 1.1 christos .*mov sp,r1.* 118 1.1 christos .*mov r1,xr2.* 119 1.1 christos .*mov \\(r1\\),r2.* 120 1.1 christos .*mov r3,\\(r4\\).* 121 1.1 christos .*mov \\(sp\\),r5.* 122 1.1 christos .*mov r6,\\(sp\\).* 123 1.1 christos .*mov 16,r1.* 124 1.1 christos .*mov 16,xr1.* 125 1.1 christos .*mov \\(16,r1\\),r2.* 126 1.1 christos .*mov r2,\\(16,r1\\).* 127 1.1 christos .*mov \\(16,sp\\),r2.* 128 1.1 christos .*mov r2,\\(16,sp\\).* 129 1.1 christos .*mov 2096895,r2.* 130 1.1 christos .*mov 2096895,xr2.* 131 1.1 christos .*mov \\(2096895,r1\\),r2.* 132 1.1 christos .*mov r2,\\(2096895,r1\\).* 133 1.1 christos .*mov \\(2096895,sp\\),r2.* 134 1.1 christos .*mov r2,\\(2096895,sp\\).* 135 1.1 christos .*mov \\(0x1ffeff\\),r2.* 136 1.1 christos .*mov r2,\\(0x1ffeff\\).* 137 1.1 christos .*mov 2147417596,r2.* 138 1.1 christos .*mov 2147417596,xr2.* 139 1.1 christos .*mov \\(2147417596,r1\\),r2.* 140 1.1 christos .*mov r2,\\(2147417596,r1\\).* 141 1.1 christos .*mov \\(2147417596,sp\\),r2.* 142 1.1 christos .*mov r2,\\(2147417596,sp\\).* 143 1.1 christos .*mov \\(0x7ffefdfc\\),r2.* 144 1.1 christos .*mov r2,\\(0x7ffefdfc\\).* 145 1.1 christos .*movu 16,r1.* 146 1.1 christos .*movu 2096895,r2.* 147 1.1 christos .*movu 2147417596,r2.* 148 1.1 christos .*mov usp,a0.* 149 1.1 christos .*mov ssp,a1.* 150 1.1 christos .*mov msp,a2.* 151 1.1 christos .*mov pc,a3.* 152 1.1 christos .*mov a0,usp.* 153 1.1 christos .*mov a1,ssp.* 154 1.1 christos .*mov a2,msp.* 155 1.1 christos .*mov epsw,d0.* 156 1.1 christos .*mov d1,epsw.* 157 1.1 christos .*mov a0,r1.* 158 1.1 christos .*mov d2,r3.* 159 1.1 christos .*mov r5,a1.* 160 1.1 christos .*mov r7,d3.* 161 1.1 christos .*$gdb_prompt $" { pass "mov tests" } 162 1.1 christos -re "$gdb_prompt $" { fail "mov tests" } 163 1.1 christos timeout { fail "(timeout) mov tests" } 164 1.1 christos } 165 1.1 christos } 166 1.1 christos 167 1.1 christos proc ext_tests { } { 168 1.1 christos global gdb_prompt 169 1.1 christos global hex 170 1.1 christos global decimal 171 1.1 christos 172 1.1 christos send_gdb "x/5i ext_tests\n" 173 1.1 christos gdb_expect { 174 1.1 christos -re " 175 1.1 christos .*ext r2.* 176 1.1 christos .*extb r3,r4.* 177 1.1 christos .*extbu r4,r5.* 178 1.1 christos .*exth r6,r7.* 179 1.1 christos .*exthu r7,a0.* 180 1.1 christos .*$gdb_prompt $" { pass "ext tests" } 181 1.1 christos -re "$gdb_prompt $" { fail "ext tests" } 182 1.1 christos timeout { fail "(timeout) ext tests" } 183 1.1 christos } 184 1.1 christos } 185 1.1 christos 186 1.1 christos proc add_tests { } { 187 1.1 christos global gdb_prompt 188 1.1 christos global hex 189 1.1 christos global decimal 190 1.1 christos 191 1.1 christos send_gdb "x/11i add_tests\n" 192 1.1 christos gdb_expect { 193 1.1 christos -re " 194 1.1 christos .*add a2,a3.* 195 1.1 christos .*add 16,r1.* 196 1.1 christos .*add 2096895,r2.* 197 1.1 christos .*add 2147417596,r2.* 198 1.1 christos .*add r1,r2,r3.* 199 1.1 christos .*addc d0,d1.* 200 1.1 christos .*addc 16,r1.* 201 1.1 christos .*addc 2096895,r2.* 202 1.1 christos .*addc 2147417596,r2.* 203 1.1 christos .*inc d1.* 204 1.1 christos .*inc4 d0.* 205 1.1 christos .*$gdb_prompt $" { pass "add tests" } 206 1.1 christos -re "$gdb_prompt $" { fail "add tests" } 207 1.1 christos timeout { fail "(timeout) add tests" } 208 1.1 christos } 209 1.1 christos } 210 1.1 christos 211 1.1 christos proc sub_tests { } { 212 1.1 christos global gdb_prompt 213 1.1 christos global hex 214 1.1 christos global decimal 215 1.1 christos 216 1.1 christos send_gdb "x/8i sub_tests\n" 217 1.1 christos gdb_expect { 218 1.1 christos -re " 219 1.1 christos .*sub d2,d3.* 220 1.1 christos .*sub 16,r1.* 221 1.1 christos .*sub 2096895,r2.* 222 1.1 christos .*sub 2147417596,r2.* 223 1.1 christos .*subc d3,d2.* 224 1.1 christos .*subc 16,r1.* 225 1.1 christos .*subc 2096895,r2.* 226 1.1 christos .*subc 2147417596,r2.* 227 1.1 christos .*$gdb_prompt $" { pass "sub tests" } 228 1.1 christos -re "$gdb_prompt $" { fail "sub tests" } 229 1.1 christos timeout { fail "(timeout) sub tests" } 230 1.1 christos } 231 1.1 christos } 232 1.1 christos 233 1.1 christos proc cmp_tests { } { 234 1.1 christos global gdb_prompt 235 1.1 christos global hex 236 1.1 christos global decimal 237 1.1 christos 238 1.1 christos send_gdb "x/4i cmp_tests\n" 239 1.1 christos gdb_expect { 240 1.1 christos -re " 241 1.1 christos .*cmp a3,a2.* 242 1.1 christos .*cmp 16,r1.* 243 1.1 christos .*cmp 2096895,r2.* 244 1.1 christos .*cmp 2147417596,r2.* 245 1.1 christos .*$gdb_prompt $" { pass "cmp tests" } 246 1.1 christos -re "$gdb_prompt $" { fail "cmp tests" } 247 1.1 christos timeout { fail "(timeout) cmp tests" } 248 1.1 christos } 249 1.1 christos } 250 1.1 christos 251 1.1 christos proc logical_tests { } { 252 1.1 christos global gdb_prompt 253 1.1 christos global hex 254 1.1 christos global decimal 255 1.1 christos 256 1.1 christos send_gdb "x/15i logical_tests\n" 257 1.1 christos gdb_expect { 258 1.1 christos -re " 259 1.1 christos .*and r0,r1.* 260 1.1 christos .*or r2,r3.* 261 1.1 christos .*xor r4,r5.* 262 1.1 christos .*not r6.* 263 1.1 christos .*and 16,r1.* 264 1.1 christos .*or 16,r1.* 265 1.1 christos .*xor 16,r1.* 266 1.1 christos .*and 2096895,r2.* 267 1.1 christos .*or 2096895,r2.* 268 1.1 christos .*xor 2096895,r2.* 269 1.1 christos .*and 2147417596,r2.* 270 1.1 christos .*or 2147417596,r2.* 271 1.1 christos .*xor 2147417596,r2.* 272 1.1 christos .*and 131072,epsw.* 273 1.1 christos .*or 65535,epsw.* 274 1.1 christos .*$gdb_prompt $" { pass "logical tests" } 275 1.1 christos -re "$gdb_prompt $" { fail "logical tests" } 276 1.1 christos timeout { fail "(timeout) logical tests" } 277 1.1 christos } 278 1.1 christos } 279 1.1 christos 280 1.1 christos proc shift_tests { } { 281 1.1 christos global gdb_prompt 282 1.1 christos global hex 283 1.1 christos global decimal 284 1.1 christos 285 1.1 christos send_gdb "x/15i shift_tests\n" 286 1.1 christos gdb_expect { 287 1.1 christos -re " 288 1.1 christos .*asr r7,a0.* 289 1.1 christos .*lsr a1,a2.* 290 1.1 christos .*asl a3,d0.* 291 1.1 christos .*asl2 d1.* 292 1.1 christos .*ror d2.* 293 1.1 christos .*rol d3.* 294 1.1 christos .*asr 16,r1.* 295 1.1 christos .*lsr 16,r1.* 296 1.1 christos .*asl 16,r1.* 297 1.1 christos .*asr 2096895,r2.* 298 1.1 christos .*lsr 2096895,r2.* 299 1.1 christos .*asl 2096895,r2.* 300 1.1 christos .*asr 2147417596,r2.* 301 1.1 christos .*lsr 2147417596,r2.* 302 1.1 christos .*asl 2147417596,r2.* 303 1.1 christos .*$gdb_prompt $" { pass "shift tests" } 304 1.1 christos -re "$gdb_prompt $" { fail "shift tests" } 305 1.1 christos timeout { fail "(timeout) shift tests" } 306 1.1 christos } 307 1.1 christos } 308 1.1 christos 309 1.1 christos proc muldiv_tests { } { 310 1.1 christos global gdb_prompt 311 1.1 christos global hex 312 1.1 christos global decimal 313 1.1 christos 314 1.1 christos send_gdb "x/16i muldiv_tests\n" 315 1.1 christos gdb_expect { 316 1.1 christos -re " 317 1.1 christos .*mul r1,r2.* 318 1.1 christos .*mulu r3,r4.* 319 1.1 christos .*mul 16,r1.* 320 1.1 christos .*mulu 16,r1.* 321 1.1 christos .*mul 2096895,r2.* 322 1.1 christos .*mulu 2096895,r2.* 323 1.1 christos .*mul 2147417596,r2.* 324 1.1 christos .*mulu 2147417596,r2.* 325 1.1 christos .*div r5,r6.* 326 1.1 christos .*divu r7,a0.* 327 1.1 christos .*dmulh d1,d0.* 328 1.1 christos .*dmulhu a3,a2.* 329 1.1 christos .*dmulh 2147417596,r2.* 330 1.1 christos .*dmulhu 2147417596,r2.* 331 1.1 christos .*mul r1,r2,r3,r4.* 332 1.1 christos .*mulu r1,r2,r3,r4.* 333 1.1 christos .*$gdb_prompt $" { pass "muldiv tests" } 334 1.1 christos -re "$gdb_prompt $" { fail "muldiv tests" } 335 1.1 christos timeout { fail "(timeout) muldiv tests" } 336 1.1 christos } 337 1.1 christos } 338 1.1 christos 339 1.1 christos proc movbu_tests { } { 340 1.1 christos global gdb_prompt 341 1.1 christos global hex 342 1.1 christos global decimal 343 1.1 christos 344 1.1 christos send_gdb "x/20i movbu_tests\n" 345 1.1 christos gdb_expect { 346 1.1 christos -re " 347 1.1 christos .*movbu \\(r5\\),r6.* 348 1.1 christos .*movbu r7,\\(a0\\).* 349 1.1 christos .*movbu \\(sp\\),r7.* 350 1.1 christos .*movbu a0,\\(sp\\).* 351 1.1 christos .*movbu \\(16,r1\\),r2.* 352 1.1 christos .*movbu r2,\\(16,r1\\).* 353 1.1 christos .*movbu \\(16,sp\\),r2.* 354 1.1 christos .*movbu r2,\\(16,sp\\).* 355 1.1 christos .*movbu \\(2096895,r1\\),r2.* 356 1.1 christos .*movbu r2,\\(2096895,r1\\).* 357 1.1 christos .*movbu \\(2096895,sp\\),r2.* 358 1.1 christos .*movbu r2,\\(2096895,sp\\).* 359 1.1 christos .*movbu \\(0x1ffeff\\),r2.* 360 1.1 christos .*movbu r2,\\(0x1ffeff\\).* 361 1.1 christos .*movbu \\(2147417596,r1\\),r2.* 362 1.1 christos .*movbu r2,\\(2147417596,r1\\).* 363 1.1 christos .*movbu \\(2147417596,sp\\),r2.* 364 1.1 christos .*movbu r2,\\(2147417596,sp\\).* 365 1.1 christos .*movbu \\(0x7ffefdfc\\),r2.* 366 1.1 christos .*movbu r2,\\(0x7ffefdfc\\).* 367 1.1 christos .*$gdb_prompt $" { pass "movbu tests" } 368 1.1 christos -re "$gdb_prompt $" { fail "movbu tests" } 369 1.1 christos timeout { fail "(timeout) movbu tests" } 370 1.1 christos } 371 1.1 christos } 372 1.1 christos 373 1.1 christos proc movhu_tests { } { 374 1.1 christos global gdb_prompt 375 1.1 christos global hex 376 1.1 christos global decimal 377 1.1 christos 378 1.1 christos send_gdb "x/20i movhu_tests\n" 379 1.1 christos gdb_expect { 380 1.1 christos -re " 381 1.1 christos .*movhu \\(a1\\),a2.* 382 1.1 christos .*movhu a3,\\(d0\\).* 383 1.1 christos .*movhu \\(sp\\),a1.* 384 1.1 christos .*movhu a2,\\(sp\\).* 385 1.1 christos .*movhu \\(16,r1\\),r2.* 386 1.1 christos .*movhu r2,\\(16,r1\\).* 387 1.1 christos .*movhu \\(16,sp\\),r2.* 388 1.1 christos .*movhu r2,\\(16,sp\\).* 389 1.1 christos .*movhu \\(2096895,r1\\),r2.* 390 1.1 christos .*movhu r2,\\(2096895,r1\\).* 391 1.1 christos .*movhu \\(2096895,sp\\),r2.* 392 1.1 christos .*movhu r2,\\(2096895,sp\\).* 393 1.1 christos .*movhu \\(0x1ffeff\\),r2.* 394 1.1 christos .*movhu r2,\\(0x1ffeff\\).* 395 1.1 christos .*movhu \\(2147417596,r1\\),r2.* 396 1.1 christos .*movhu r2,\\(2147417596,r1\\).* 397 1.1 christos .*movhu \\(2147417596,sp\\),r2.* 398 1.1 christos .*movhu r2,\\(2147417596,sp\\).* 399 1.1 christos .*movhu \\(0x7ffefdfc\\),r2.* 400 1.1 christos .*movhu r2,\\(0x7ffefdfc\\).* 401 1.1 christos .*$gdb_prompt $" { pass "movhu tests" } 402 1.1 christos -re "$gdb_prompt $" { fail "movhu tests" } 403 1.1 christos timeout { fail "(timeout) movhu tests" } 404 1.1 christos } 405 1.1 christos } 406 1.1 christos 407 1.1 christos proc mac_tests { } { 408 1.1 christos global gdb_prompt 409 1.1 christos global hex 410 1.1 christos global decimal 411 1.1 christos 412 1.1 christos send_gdb "x/28i mac_tests\n" 413 1.1 christos gdb_expect { 414 1.1 christos -re " 415 1.1 christos .*mac r1,r2.* 416 1.1 christos .*macu r3,r4.* 417 1.1 christos .*macb r5,r6.* 418 1.1 christos .*macbu r7,a0.* 419 1.1 christos .*mach a1,a2.* 420 1.1 christos .*machu a3,d0.* 421 1.1 christos .*dmach d1,d2.* 422 1.1 christos .*dmachu d3,d2.* 423 1.1 christos .*mac 16,r1.* 424 1.1 christos .*macu 16,r1.* 425 1.1 christos .*macb 16,r1.* 426 1.1 christos .*macbu 16,r1.* 427 1.1 christos .*mach 16,r1.* 428 1.1 christos .*machu 16,r1.* 429 1.1 christos .*mac 2096895,r2.* 430 1.1 christos .*macu 2096895,r2.* 431 1.1 christos .*macb 2096895,r2.* 432 1.1 christos .*macbu 2096895,r2.* 433 1.1 christos .*mach 2096895,r2.* 434 1.1 christos .*machu 2096895,r2.* 435 1.1 christos .*mac 2147417596,r2.* 436 1.1 christos .*macu 2147417596,r2.* 437 1.1 christos .*macb 2147417596,r2.* 438 1.1 christos .*macbu 2147417596,r2.* 439 1.1 christos .*mach 2147417596,r2.* 440 1.1 christos .*machu 2147417596,r2.* 441 1.1 christos .*dmach 2147417596,r2.* 442 1.1 christos .*dmachu 2147417596,r2.* 443 1.1 christos .*$gdb_prompt $" { pass "mac tests" } 444 1.1 christos -re "$gdb_prompt $" { fail "mac tests" } 445 1.1 christos timeout { fail "(timeout) mac tests" } 446 1.1 christos } 447 1.1 christos } 448 1.1 christos 449 1.1 christos proc bit_tests { } { 450 1.1 christos global gdb_prompt 451 1.1 christos global hex 452 1.1 christos global decimal 453 1.1 christos 454 1.1 christos send_gdb "x/4i bit_tests\n" 455 1.1 christos gdb_expect { 456 1.1 christos -re " 457 1.1 christos .*bsch r1,r2.* 458 1.1 christos .*btst 16,r1.* 459 1.1 christos .*btst 2096895,r2.* 460 1.1 christos .*btst 2147417596,r2.* 461 1.1 christos .*$gdb_prompt $" { pass "bit tests" } 462 1.1 christos -re "$gdb_prompt $" { fail "bit tests" } 463 1.1 christos timeout { fail "(timeout) bit tests" } 464 1.1 christos } 465 1.1 christos } 466 1.1 christos 467 1.1 christos proc dsp_add_tests { } { 468 1.1 christos global gdb_prompt 469 1.1 christos global hex 470 1.1 christos global decimal 471 1.1 christos 472 1.1 christos send_gdb "x/28i dsp_add_tests\n" 473 1.1 christos gdb_expect { 474 1.1 christos -re " 475 1.1 christos .*add_add r4,r1,r2,r3.* 476 1.1 christos .*add_add r4,r1,2,r3.* 477 1.1 christos .*add_sub r4,r1,r2,r3.* 478 1.1 christos .*add_sub r4,r1,2,r3.* 479 1.1 christos .*add_cmp r4,r1,r2,r3.* 480 1.1 christos .*add_cmp r4,r1,2,r3.* 481 1.1 christos .*add_mov r4,r1,r2,r3.* 482 1.1 christos .*add_mov r4,r1,2,r3.* 483 1.1 christos .*add_asr r4,r1,r2,r3.* 484 1.1 christos .*add_asr r4,r1,2,r3.* 485 1.1 christos .*add_lsr r4,r1,r2,r3.* 486 1.1 christos .*add_lsr r4,r1,2,r3.* 487 1.1 christos .*add_asl r4,r1,r2,r3.* 488 1.1 christos .*add_asl r4,r1,2,r3.* 489 1.1 christos .*add_add 4,r1,r2,r3.* 490 1.1 christos .*add_add 4,r1,2,r3.* 491 1.1 christos .*add_sub 4,r1,r2,r3.* 492 1.1 christos .*add_sub 4,r1,2,r3.* 493 1.1 christos .*add_cmp 4,r1,r2,r3.* 494 1.1 christos .*add_cmp 4,r1,2,r3.* 495 1.1 christos .*add_mov 4,r1,r2,r3.* 496 1.1 christos .*add_mov 4,r1,2,r3.* 497 1.1 christos .*add_asr 4,r1,r2,r3.* 498 1.1 christos .*add_asr 4,r1,2,r3.* 499 1.1 christos .*add_lsr 4,r1,r2,r3.* 500 1.1 christos .*add_lsr 4,r1,2,r3.* 501 1.1 christos .*add_asl 4,r1,r2,r3.* 502 1.1 christos .*add_asl 4,r1,2,r3.* 503 1.1 christos .*$gdb_prompt $" { pass "dsp_add tests" } 504 1.1 christos -re "$gdb_prompt $" { fail "dsp_add tests" } 505 1.1 christos timeout { fail "(timeout) dsp_add tests" } 506 1.1 christos } 507 1.1 christos } 508 1.1 christos 509 1.1 christos proc dsp_cmp_tests { } { 510 1.1 christos global gdb_prompt 511 1.1 christos global hex 512 1.1 christos global decimal 513 1.1 christos 514 1.1 christos send_gdb "x/24i dsp_cmp_tests\n" 515 1.1 christos gdb_expect { 516 1.1 christos -re " 517 1.1 christos .*cmp_add r4,r1,r2,r3.* 518 1.1 christos .*cmp_add r4,r1,2,r3.* 519 1.1 christos .*cmp_sub r4,r1,r2,r3.* 520 1.1 christos .*cmp_sub r4,r1,2,r3.* 521 1.1 christos .*cmp_mov r4,r1,r2,r3.* 522 1.1 christos .*cmp_mov r4,r1,2,r3.* 523 1.1 christos .*cmp_asr r4,r1,r2,r3.* 524 1.1 christos .*cmp_asr r4,r1,2,r3.* 525 1.1 christos .*cmp_lsr r4,r1,r2,r3.* 526 1.1 christos .*cmp_lsr r4,r1,2,r3.* 527 1.1 christos .*cmp_asl r4,r1,r2,r3.* 528 1.1 christos .*cmp_asl r4,r1,2,r3.* 529 1.1 christos .*cmp_add 4,r1,r2,r3.* 530 1.1 christos .*cmp_add 4,r1,2,r3.* 531 1.1 christos .*cmp_sub 4,r1,r2,r3.* 532 1.1 christos .*cmp_sub 4,r1,2,r3.* 533 1.1 christos .*cmp_mov 4,r1,r2,r3.* 534 1.1 christos .*cmp_mov 4,r1,2,r3.* 535 1.1 christos .*cmp_asr 4,r1,r2,r3.* 536 1.1 christos .*cmp_asr 4,r1,2,r3.* 537 1.1 christos .*cmp_lsr 4,r1,r2,r3.* 538 1.1 christos .*cmp_lsr 4,r1,2,r3.* 539 1.1 christos .*cmp_asl 4,r1,r2,r3.* 540 1.1 christos .*cmp_asl 4,r1,2,r3.* 541 1.1 christos .*$gdb_prompt $" { pass "dsp_cmp tests" } 542 1.1 christos -re "$gdb_prompt $" { fail "dsp_cmp tests" } 543 1.1 christos timeout { fail "(timeout) dsp_cmp tests" } 544 1.1 christos } 545 1.1 christos } 546 1.1 christos 547 1.1 christos proc dsp_sub_tests { } { 548 1.1 christos global gdb_prompt 549 1.1 christos global hex 550 1.1 christos global decimal 551 1.1 christos 552 1.1 christos send_gdb "x/28i dsp_sub_tests\n" 553 1.1 christos gdb_expect { 554 1.1 christos -re " 555 1.1 christos .*sub_add r4,r1,r2,r3.* 556 1.1 christos .*sub_add r4,r1,2,r3.* 557 1.1 christos .*sub_sub r4,r1,r2,r3.* 558 1.1 christos .*sub_sub r4,r1,2,r3.* 559 1.1 christos .*sub_cmp r4,r1,r2,r3.* 560 1.1 christos .*sub_cmp r4,r1,2,r3.* 561 1.1 christos .*sub_mov r4,r1,r2,r3.* 562 1.1 christos .*sub_mov r4,r1,2,r3.* 563 1.1 christos .*sub_asr r4,r1,r2,r3.* 564 1.1 christos .*sub_asr r4,r1,2,r3.* 565 1.1 christos .*sub_lsr r4,r1,r2,r3.* 566 1.1 christos .*sub_lsr r4,r1,2,r3.* 567 1.1 christos .*sub_asl r4,r1,r2,r3.* 568 1.1 christos .*sub_asl r4,r1,2,r3.* 569 1.1 christos .*sub_add 4,r1,r2,r3.* 570 1.1 christos .*sub_add 4,r1,2,r3.* 571 1.1 christos .*sub_sub 4,r1,r2,r3.* 572 1.1 christos .*sub_sub 4,r1,2,r3.* 573 1.1 christos .*sub_cmp 4,r1,r2,r3.* 574 1.1 christos .*sub_cmp 4,r1,2,r3.* 575 1.1 christos .*sub_mov 4,r1,r2,r3.* 576 1.1 christos .*sub_mov 4,r1,2,r3.* 577 1.1 christos .*sub_asr 4,r1,r2,r3.* 578 1.1 christos .*sub_asr 4,r1,2,r3.* 579 1.1 christos .*sub_lsr 4,r1,r2,r3.* 580 1.1 christos .*sub_lsr 4,r1,2,r3.* 581 1.1 christos .*sub_asl 4,r1,r2,r3.* 582 1.1 christos .*sub_asl 4,r1,2,r3.* 583 1.1 christos .*$gdb_prompt $" { pass "dsp_sub tests" } 584 1.1 christos -re "$gdb_prompt $" { fail "dsp_sub tests" } 585 1.1 christos timeout { fail "(timeout) dsp_sub tests" } 586 1.1 christos } 587 1.1 christos } 588 1.1 christos 589 1.1 christos proc dsp_mov_tests { } { 590 1.1 christos global gdb_prompt 591 1.1 christos global hex 592 1.1 christos global decimal 593 1.1 christos 594 1.1 christos send_gdb "x/28i dsp_mov_tests\n" 595 1.1 christos gdb_expect { 596 1.1 christos -re " 597 1.1 christos .*mov_add r4,r1,r2,r3.* 598 1.1 christos .*mov_add r4,r1,2,r3.* 599 1.1 christos .*mov_sub r4,r1,r2,r3.* 600 1.1 christos .*mov_sub r4,r1,2,r3.* 601 1.1 christos .*mov_cmp r4,r1,r2,r3.* 602 1.1 christos .*mov_cmp r4,r1,2,r3.* 603 1.1 christos .*mov_mov r4,r1,r2,r3.* 604 1.1 christos .*mov_mov r4,r1,2,r3.* 605 1.1 christos .*mov_asr r4,r1,r2,r3.* 606 1.1 christos .*mov_asr r4,r1,2,r3.* 607 1.1 christos .*mov_lsr r4,r1,r2,r3.* 608 1.1 christos .*mov_lsr r4,r1,2,r3.* 609 1.1 christos .*mov_asl r4,r1,r2,r3.* 610 1.1 christos .*mov_asl r4,r1,2,r3.* 611 1.1 christos .*mov_add 4,r1,r2,r3.* 612 1.1 christos .*mov_add 4,r1,2,r3.* 613 1.1 christos .*mov_sub 4,r1,r2,r3.* 614 1.1 christos .*mov_sub 4,r1,2,r3.* 615 1.1 christos .*mov_cmp 4,r1,r2,r3.* 616 1.1 christos .*mov_cmp 4,r1,2,r3.* 617 1.1 christos .*mov_mov 4,r1,r2,r3.* 618 1.1 christos .*mov_mov 4,r1,2,r3.* 619 1.1 christos .*mov_asr 4,r1,r2,r3.* 620 1.1 christos .*mov_asr 4,r1,2,r3.* 621 1.1 christos .*mov_lsr 4,r1,r2,r3.* 622 1.1 christos .*mov_lsr 4,r1,2,r3.* 623 1.1 christos .*mov_asl 4,r1,r2,r3.* 624 1.1 christos .*mov_asl 4,r1,2,r3.* 625 1.1 christos .*$gdb_prompt $" { pass "dsp_mov tests" } 626 1.1 christos -re "$gdb_prompt $" { fail "dsp_mov tests" } 627 1.1 christos timeout { fail "(timeout) dsp_mov tests" } 628 1.1 christos } 629 1.1 christos } 630 1.1 christos 631 1.1 christos proc dsp_logical_tests { } { 632 1.1 christos global gdb_prompt 633 1.1 christos global hex 634 1.1 christos global decimal 635 1.1 christos 636 1.1 christos send_gdb "x/42i dsp_logical_tests\n" 637 1.1 christos gdb_expect { 638 1.1 christos -re " 639 1.1 christos .*and_add r4,r1,r2,r3.* 640 1.1 christos .*and_add r4,r1,2,r3.* 641 1.1 christos .*and_sub r4,r1,r2,r3.* 642 1.1 christos .*and_sub r4,r1,2,r3.* 643 1.1 christos .*and_cmp r4,r1,r2,r3.* 644 1.1 christos .*and_cmp r4,r1,2,r3.* 645 1.1 christos .*and_mov r4,r1,r2,r3.* 646 1.1 christos .*and_mov r4,r1,2,r3.* 647 1.1 christos .*and_asr r4,r1,r2,r3.* 648 1.1 christos .*and_asr r4,r1,2,r3.* 649 1.1 christos .*and_lsr r4,r1,r2,r3.* 650 1.1 christos .*and_lsr r4,r1,2,r3.* 651 1.1 christos .*and_asl r4,r1,r2,r3.* 652 1.1 christos .*and_asl r4,r1,2,r3.* 653 1.1 christos .*xor_add r4,r1,r2,r3.* 654 1.1 christos .*xor_add r4,r1,2,r3.* 655 1.1 christos .*xor_sub r4,r1,r2,r3.* 656 1.1 christos .*xor_sub r4,r1,2,r3.* 657 1.1 christos .*xor_cmp r4,r1,r2,r3.* 658 1.1 christos .*xor_cmp r4,r1,2,r3.* 659 1.1 christos .*xor_mov r4,r1,r2,r3.* 660 1.1 christos .*xor_mov r4,r1,2,r3.* 661 1.1 christos .*xor_asr r4,r1,r2,r3.* 662 1.1 christos .*xor_asr r4,r1,2,r3.* 663 1.1 christos .*xor_lsr r4,r1,r2,r3.* 664 1.1 christos .*xor_lsr r4,r1,2,r3.* 665 1.1 christos .*xor_asl r4,r1,r2,r3.* 666 1.1 christos .*xor_asl r4,r1,2,r3.* 667 1.1 christos .*or_add r4,r1,r2,r3.* 668 1.1 christos .*or_add r4,r1,2,r3.* 669 1.1 christos .*or_sub r4,r1,r2,r3.* 670 1.1 christos .*or_sub r4,r1,2,r3.* 671 1.1 christos .*or_cmp r4,r1,r2,r3.* 672 1.1 christos .*or_cmp r4,r1,2,r3.* 673 1.1 christos .*or_mov r4,r1,r2,r3.* 674 1.1 christos .*or_mov r4,r1,2,r3.* 675 1.1 christos .*or_asr r4,r1,r2,r3.* 676 1.1 christos .*or_asr r4,r1,2,r3.* 677 1.1 christos .*or_lsr r4,r1,r2,r3.* 678 1.1 christos .*or_lsr r4,r1,2,r3.* 679 1.1 christos .*or_asl r4,r1,r2,r3.* 680 1.1 christos .*or_asl r4,r1,2,r3.* 681 1.1 christos .*$gdb_prompt $" { pass "dsp_logical tests" } 682 1.1 christos -re "$gdb_prompt $" { fail "dsp_logical tests" } 683 1.1 christos timeout { fail "(timeout) dsp_logical tests" } 684 1.1 christos } 685 1.1 christos } 686 1.1 christos 687 1.1 christos proc dsp_misc_tests { } { 688 1.1 christos global gdb_prompt 689 1.1 christos global hex 690 1.1 christos global decimal 691 1.1 christos 692 1.1 christos send_gdb "x/42i dsp_misc_tests\n" 693 1.1 christos gdb_expect { 694 1.1 christos -re " 695 1.1 christos .*dmach_add r4,r1,r2,r3.* 696 1.1 christos .*dmach_add r4,r1,2,r3.* 697 1.1 christos .*dmach_sub r4,r1,r2,r3.* 698 1.1 christos .*dmach_sub r4,r1,2,r3.* 699 1.1 christos .*dmach_cmp r4,r1,r2,r3.* 700 1.1 christos .*dmach_cmp r4,r1,2,r3.* 701 1.1 christos .*dmach_mov r4,r1,r2,r3.* 702 1.1 christos .*dmach_mov r4,r1,2,r3.* 703 1.1 christos .*dmach_asr r4,r1,r2,r3.* 704 1.1 christos .*dmach_asr r4,r1,2,r3.* 705 1.1 christos .*dmach_lsr r4,r1,r2,r3.* 706 1.1 christos .*dmach_lsr r4,r1,2,r3.* 707 1.1 christos .*dmach_asl r4,r1,r2,r3.* 708 1.1 christos .*dmach_asl r4,r1,2,r3.* 709 1.1 christos .*swhw_add r4,r1,r2,r3.* 710 1.1 christos .*swhw_add r4,r1,2,r3.* 711 1.1 christos .*swhw_sub r4,r1,r2,r3.* 712 1.1 christos .*swhw_sub r4,r1,2,r3.* 713 1.1 christos .*swhw_cmp r4,r1,r2,r3.* 714 1.1 christos .*swhw_cmp r4,r1,2,r3.* 715 1.1 christos .*swhw_mov r4,r1,r2,r3.* 716 1.1 christos .*swhw_mov r4,r1,2,r3.* 717 1.1 christos .*swhw_asr r4,r1,r2,r3.* 718 1.1 christos .*swhw_asr r4,r1,2,r3.* 719 1.1 christos .*swhw_lsr r4,r1,r2,r3.* 720 1.1 christos .*swhw_lsr r4,r1,2,r3.* 721 1.1 christos .*swhw_asl r4,r1,r2,r3.* 722 1.1 christos .*swhw_asl r4,r1,2,r3.* 723 1.1 christos .*sat16_add r4,r1,r2,r3.* 724 1.1 christos .*sat16_add r4,r1,2,r3.* 725 1.1 christos .*sat16_sub r4,r1,r2,r3.* 726 1.1 christos .*sat16_sub r4,r1,2,r3.* 727 1.1 christos .*sat16_cmp r4,r1,r2,r3.* 728 1.1 christos .*sat16_cmp r4,r1,2,r3.* 729 1.1 christos .*sat16_mov r4,r1,r2,r3.* 730 1.1 christos .*sat16_mov r4,r1,2,r3.* 731 1.1 christos .*sat16_asr r4,r1,r2,r3.* 732 1.1 christos .*sat16_asr r4,r1,2,r3.* 733 1.1 christos .*sat16_lsr r4,r1,r2,r3.* 734 1.1 christos .*sat16_lsr r4,r1,2,r3.* 735 1.1 christos .*sat16_asl r4,r1,r2,r3.* 736 1.1 christos .*sat16_asl r4,r1,2,r3.* 737 1.1 christos .*$gdb_prompt $" { pass "dsp_misc tests" } 738 1.1 christos -re "$gdb_prompt $" { fail "dsp_misc tests" } 739 1.1 christos timeout { fail "(timeout) dsp_misc tests" } 740 1.1 christos } 741 1.1 christos } 742 1.1 christos 743 1.1 christos proc autoincrement_tests { } { 744 1.1 christos global gdb_prompt 745 1.1 christos global hex 746 1.1 christos global decimal 747 1.1 christos 748 1.1 christos send_gdb "x/16i autoincrement_tests\n" 749 1.1 christos gdb_expect { 750 1.1 christos -re " 751 1.1 christos .*mov \\(r1\\+\\),r2.* 752 1.1 christos .*mov r3,\\(r4\\+\\).* 753 1.1 christos .*movhu \\(r6\\+\\),r7.* 754 1.1 christos .*movhu a0,\\(a1\\+\\).* 755 1.1 christos .*mov \\(r1\\+,64\\),r2.* 756 1.1 christos .*mov r1,\\(r2\\+,64\\).* 757 1.1 christos .*movhu \\(r1\\+,64\\),r2.* 758 1.1 christos .*movhu r1,\\(r2\\+,64\\).* 759 1.1 christos .*mov \\(r1\\+,131055\\),r2.* 760 1.1 christos .*mov r1,\\(r2\\+,131055\\).* 761 1.1 christos .*movhu \\(r1\\+,131055\\),r2.* 762 1.1 christos .*movhu r1,\\(r2\\+,131055\\).* 763 1.1 christos .*mov \\(r1\\+,2147417596\\),r2.* 764 1.1 christos .*mov r1,\\(r2\\+,2147417596\\).* 765 1.1 christos .*movhu \\(r1\\+,2147417596\\),r2.* 766 1.1 christos .*movhu r1,\\(r2\\+,2147417596\\).* 767 1.1 christos .*$gdb_prompt $" { pass "autoincrement tests" } 768 1.1 christos -re "$gdb_prompt $" { fail "autoincrement tests" } 769 1.1 christos timeout { fail "(timeout) autoincrement tests" } 770 1.1 christos } 771 1.1 christos } 772 1.1 christos 773 1.1 christos proc dsp_autoincrement_tests { } { 774 1.1 christos global gdb_prompt 775 1.1 christos global hex 776 1.1 christos global decimal 777 1.1 christos 778 1.1 christos send_gdb "x/11i dsp_autoincrement_tests\n" 779 1.1 christos gdb_expect { 780 1.1 christos -re " 781 1.1 christos .*mov_llt \\(r1\\+,4\\),r2.* 782 1.1 christos .*mov_lgt \\(r1\\+,4\\),r2.* 783 1.1 christos .*mov_lge \\(r1\\+,4\\),r2.* 784 1.1 christos .*mov_lle \\(r1\\+,4\\),r2.* 785 1.1 christos .*mov_lcs \\(r1\\+,4\\),r2.* 786 1.1 christos .*mov_lhi \\(r1\\+,4\\),r2.* 787 1.1 christos .*mov_lcc \\(r1\\+,4\\),r2.* 788 1.1 christos .*mov_lls \\(r1\\+,4\\),r2.* 789 1.1 christos .*mov_leq \\(r1\\+,4\\),r2.* 790 1.1 christos .*mov_lne \\(r1\\+,4\\),r2.* 791 1.1 christos .*mov_lra \\(r1\\+,4\\),r2.* 792 1.1 christos .*$gdb_prompt $" { pass "autoincrement tests" } 793 1.1 christos -re "$gdb_prompt $" { fail "autoincrement tests" } 794 1.1 christos timeout { fail "(timeout) autoincrement tests" } 795 1.1 christos } 796 1.1 christos } 797 1.1 christos 798 1.11 christos clean_restart $binfile 799 1.1 christos 800 1.1 christos call_tests 801 1.1 christos movm_tests 802 1.1 christos misc_tests 803 1.1 christos mov_tests 804 1.1 christos ext_tests 805 1.1 christos add_tests 806 1.1 christos sub_tests 807 1.1 christos cmp_tests 808 1.1 christos logical_tests 809 1.1 christos shift_tests 810 1.1 christos muldiv_tests 811 1.1 christos movbu_tests 812 1.1 christos movhu_tests 813 1.1 christos mac_tests 814 1.1 christos bit_tests 815 1.1 christos dsp_add_tests 816 1.1 christos dsp_cmp_tests 817 1.1 christos dsp_sub_tests 818 1.1 christos dsp_mov_tests 819 1.1 christos dsp_logical_tests 820 1.1 christos autoincrement_tests 821 1.1 christos dsp_autoincrement_tests 822