mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
4a94e36819
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
561 lines
11 KiB
Plaintext
561 lines
11 KiB
Plaintext
|
|
# Copyright 1997-2022 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 <http://www.gnu.org/licenses/>.
|
|
|
|
# This file was written by Jeff Law. (law@cygnus.com)
|
|
|
|
if ![istarget "mn10300*-*-*"] {
|
|
verbose "Tests ignored for all but mn10300 based targets."
|
|
return
|
|
}
|
|
|
|
global exec_output
|
|
|
|
set testfile "mn10300"
|
|
set srcfile ${srcdir}/${subdir}/${testfile}.s
|
|
set binfile ${objdir}/${subdir}/${testfile}
|
|
if { [gdb_compile "${srcfile}" "${binfile}" executable ""] != "" } {
|
|
untested "failed to compile"
|
|
return -1
|
|
}
|
|
|
|
proc add_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/14i add_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*add d1,d2.*
|
|
.*add d2,a3.*
|
|
.*add a3,a2.*
|
|
.*add a2,d1.*
|
|
.*add 16,d1.*
|
|
.*add 256,d2.*
|
|
.*add 131071,d3.*
|
|
.*add 16,a1.*
|
|
.*add 256,a2.*
|
|
.*add 131071,a3.*
|
|
.*add 16,sp.*
|
|
.*add 256,sp.*
|
|
.*add 131071,sp.*
|
|
.*addc d1,d2.*
|
|
.*$gdb_prompt $" { pass "add tests" }
|
|
-re "$gdb_prompt $" { fail "add tests" }
|
|
timeout { fail "(timeout) add tests" }
|
|
}
|
|
}
|
|
|
|
proc bcc_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/15i bCC_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*beq 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bne 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bgt 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bge 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*ble 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*blt 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bhi 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bcc 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bls 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bcs 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bvc 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bvs 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bnc 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bns 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*bra 0x\[0-9a-f]+ <bCC_tests>.*
|
|
.*$gdb_prompt $" { pass "bCC tests" }
|
|
-re "$gdb_prompt $" { fail "bCC tests" }
|
|
timeout { fail "(timeout) bCC tests" }
|
|
}
|
|
}
|
|
|
|
proc bit_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/11i bit_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*btst 64,d1.*
|
|
.*btst 8192,d2.*
|
|
.*btst 131071,d3.*
|
|
.*btst 64,\\(8,a1\\).*
|
|
.*btst 64,\\(0x1ffff\\).*
|
|
.*bset d1,\\(a2\\).*
|
|
.*bset 64,\\(8,a1\\).*
|
|
.*bset 64,\\(0x1ffff\\).*
|
|
.*bclr d1,\\(a2\\).*
|
|
.*bclr 64,\\(8,a1\\).*
|
|
.*bclr 64,\\(0x1ffff\\).*
|
|
.*$gdb_prompt $" { pass "bit tests" }
|
|
-re "$gdb_prompt $" { fail "bit tests" }
|
|
timeout { fail "(timeout) bit tests" }
|
|
}
|
|
}
|
|
|
|
proc cmp_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/10i cmp_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*cmp d1,d2.*
|
|
.*cmp d2,a3.*
|
|
.*cmp a3,d3.*
|
|
.*cmp a3,a2.*
|
|
.*cmp 16,d3.*
|
|
.*cmp 256,d2.*
|
|
.*cmp 131071,d1.*
|
|
.*cmp 16,a3.*
|
|
.*cmp 256,a2.*
|
|
.*cmp 131071,a1.*
|
|
.*$gdb_prompt $" { pass "cmp tests" }
|
|
-re "$gdb_prompt $" { fail "cmp tests" }
|
|
timeout { fail "(timeout) cmp tests" }
|
|
}
|
|
}
|
|
|
|
proc extend_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/5i extend_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*ext d1.*
|
|
.*extb d2.*
|
|
.*extbu d3.*
|
|
.*exth d2.*
|
|
.*exthu d1.*
|
|
.*$gdb_prompt $" { pass "extend tests" }
|
|
-re "$gdb_prompt $" { fail "extend tests" }
|
|
timeout { fail "(timeout) extend tests" }
|
|
}
|
|
}
|
|
|
|
proc extended_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/13i extended_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*putx d1.*
|
|
.*getx d2.*
|
|
.*mulq d1,d2.*
|
|
.*mulq 16,d2.*
|
|
.*mulq 256,d3.*
|
|
.*mulq 131071,d3.*
|
|
.*mulqu d1,d2.*
|
|
.*mulqu 16,d2.*
|
|
.*mulqu 256,d3.*
|
|
.*mulqu 131071,d3.*
|
|
.*sat16 d2,d3.*
|
|
.*sat24 d3,d2.*
|
|
.*bsch d1,d2.*
|
|
.*$gdb_prompt $" { pass "extended tests" }
|
|
-re "$gdb_prompt $" { fail "extended tests" }
|
|
timeout { fail "(timeout) extended tests" }
|
|
}
|
|
}
|
|
|
|
proc logical_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/14i logical_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*and d1,d2.*
|
|
.*and 127,d2.*
|
|
.*and 32767,d3.*
|
|
.*and 131071,d3.*
|
|
.*and 32767,psw.*
|
|
.*or d1,d2.*
|
|
.*or 127,d2.*
|
|
.*or 32767,d3.*
|
|
.*or 131071,d3.*
|
|
.*or 32767,psw.*
|
|
.*xor d1,d2.*
|
|
.*xor 32767,d3.*
|
|
.*xor 131071,d3.*
|
|
.*not d3.*
|
|
.*$gdb_prompt $" { pass "logical tests" }
|
|
-re "$gdb_prompt $" { fail "logical tests" }
|
|
timeout { fail "(timeout) logical tests" }
|
|
}
|
|
}
|
|
|
|
proc loop_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/12i loop_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*leq.*
|
|
.*lne.*
|
|
.*lgt.*
|
|
.*lge.*
|
|
.*lle.*
|
|
.*llt.*
|
|
.*lhi.*
|
|
.*lcc.*
|
|
.*lls.*
|
|
.*lcs.*
|
|
.*lra.*
|
|
.*setlb.*
|
|
.*$gdb_prompt $" { pass "loop tests" }
|
|
-re "$gdb_prompt $" { fail "loop tests" }
|
|
timeout { fail "(timeout) loop tests" }
|
|
}
|
|
}
|
|
|
|
proc mov_tests_1 { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/16i mov_tests_1\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*mov d1,d2.*
|
|
.*mov d1,a2.*
|
|
.*mov a2,d1.*
|
|
.*mov a2,a1.*
|
|
.*mov sp,a2.*
|
|
.*mov a1,sp.*
|
|
.*mov d2,psw.*
|
|
.*mov mdr,d1.*
|
|
.*mov d2,mdr.*
|
|
.*mov \\(a2\\),d1.*
|
|
.*mov \\(8,a2\\),d1.*
|
|
.*mov \\(256,a2\\),d1.*
|
|
.*mov \\(131071,a2\\),d1.*
|
|
.*mov \\(8,sp\\),d1.*
|
|
.*mov \\(256,sp\\),d1.*
|
|
.*mov psw,d3.*
|
|
.*$gdb_prompt $" { pass "mov1 tests" }
|
|
-re "$gdb_prompt $" { fail "mov1 tests" }
|
|
timeout { fail "(timeout) mov1 tests" }
|
|
}
|
|
}
|
|
|
|
proc mov_tests_2 { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/15i mov_tests_2\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*mov \\(131071,sp\\),d1.*
|
|
.*mov \\(d1,a1\\),d2.*
|
|
.*mov \\(0x8000.*\\),d1.*
|
|
.*mov \\(0x1ffff.*\\),d1.*
|
|
.*mov \\(a2\\),a1.*
|
|
.*mov \\(8,a2\\),a1.*
|
|
.*mov \\(256,a2\\),a1.*
|
|
.*mov \\(131071,a2\\),a1.*
|
|
.*mov \\(8,sp\\),a1.*
|
|
.*mov \\(256,sp\\),a1.*
|
|
.*mov \\(131071,sp\\),a1.*
|
|
.*mov \\(d1,a1\\),a2.*
|
|
.*mov \\(0x8000.*\\),a1.*
|
|
.*mov \\(0x1ffff.*\\),a1.*
|
|
.*mov \\(32,a1\\),sp.*
|
|
.*$gdb_prompt $" { pass "mov2 tests" }
|
|
-re "$gdb_prompt $" { fail "mov2 tests" }
|
|
timeout { fail "(timeout) mov2 tests" }
|
|
}
|
|
}
|
|
|
|
proc mov_tests_3 { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/15i mov_tests_3\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*mov d1,\\(a2\\).*
|
|
.*mov d1,\\(32,a2\\).*
|
|
.*mov d1,\\(256,a2\\).*
|
|
.*mov d1,\\(131071,a2\\).*
|
|
.*mov d1,\\(32,sp\\).*
|
|
.*mov d1,\\(32768,sp\\).*
|
|
.*mov d1,\\(131071,sp\\).*
|
|
.*mov d1,\\(d2,a2\\).*
|
|
.*mov d1,\\(0x80.*\\).*
|
|
.*mov d1,\\(0x1ffff.*\\).*
|
|
.*mov a1,\\(a2\\).*
|
|
.*mov a1,\\(32,a2\\).*
|
|
.*mov a1,\\(256,a2\\).*
|
|
.*mov a1,\\(131071,a2\\).*
|
|
.*mov a1,\\(32,sp\\).*
|
|
.*$gdb_prompt $" { pass "mov3 tests" }
|
|
-re "$gdb_prompt $" { fail "mov3 tests" }
|
|
timeout { fail "(timeout) mov3 tests" }
|
|
}
|
|
}
|
|
|
|
proc mov_tests_4 { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/12i mov_tests_4\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*mov a1,\\(32768,sp\\).*
|
|
.*mov a1,\\(131071,sp\\).*
|
|
.*mov a1,\\(d2,a2\\).*
|
|
.*mov a1,\\(0x80.*\\).*
|
|
.*mov a1,\\(0x1ffff.*\\).*
|
|
.*mov sp,\\(32,a1\\).*
|
|
.*mov 8,d1.*
|
|
.*mov 256,d1.*
|
|
.*mov 131071,d1.*
|
|
.*mov 8,a1.*
|
|
.*mov 256,a1.*
|
|
.*mov 131071,a1.*
|
|
.*$gdb_prompt $" { pass "mov4 tests" }
|
|
-re "$gdb_prompt $" { fail "mov4 tests" }
|
|
timeout { fail "(timeout) mov4 tests" }
|
|
}
|
|
}
|
|
|
|
proc movbu_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/20i movbu_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*movbu \\(a2\\),d1.*
|
|
.*movbu \\(8,a2\\),d1.*
|
|
.*movbu \\(256,a2\\),d1.*
|
|
.*movbu \\(131071,a2\\),d1.*
|
|
.*movbu \\(8,sp\\),d1.*
|
|
.*movbu \\(256,sp\\),d1.*
|
|
.*movbu \\(131071,sp\\),d1.*
|
|
.*movbu \\(d1,a1\\),d2.*
|
|
.*movbu \\(0x8000.*\\),d1.*
|
|
.*movbu \\(0x1ffff.*\\),d1.*
|
|
.*movbu d1,\\(a2\\).*
|
|
.*movbu d1,\\(32,a2\\).*
|
|
.*movbu d1,\\(256,a2\\).*
|
|
.*movbu d1,\\(131071,a2\\).*
|
|
.*movbu d1,\\(32,sp\\).*
|
|
.*movbu d1,\\(32768,sp\\).*
|
|
.*movbu d1,\\(131071,sp\\).*
|
|
.*movbu d1,\\(d2,a2\\).*
|
|
.*movbu d1,\\(0x80.*\\).*
|
|
.*movbu d1,\\(0x1ffff.*\\).*
|
|
.*$gdb_prompt $" { pass "movbu tests" }
|
|
-re "$gdb_prompt $" { fail "movbu tests" }
|
|
timeout { fail "(timeout) movbu tests" }
|
|
}
|
|
}
|
|
|
|
proc movhu_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/20i movhu_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*movhu \\(a2\\),d1.*
|
|
.*movhu \\(8,a2\\),d1.*
|
|
.*movhu \\(256,a2\\),d1.*
|
|
.*movhu \\(131071,a2\\),d1.*
|
|
.*movhu \\(8,sp\\),d1.*
|
|
.*movhu \\(256,sp\\),d1.*
|
|
.*movhu \\(131071,sp\\),d1.*
|
|
.*movhu \\(d1,a1\\),d2.*
|
|
.*movhu \\(0x8000.*\\),d1.*
|
|
.*movhu \\(0x1ffff.*\\),d1.*
|
|
.*movhu d1,\\(a2\\).*
|
|
.*movhu d1,\\(32,a2\\).*
|
|
.*movhu d1,\\(256,a2\\).*
|
|
.*movhu d1,\\(131071,a2\\).*
|
|
.*movhu d1,\\(32,sp\\).*
|
|
.*movhu d1,\\(32768,sp\\).*
|
|
.*movhu d1,\\(131071,sp\\).*
|
|
.*movhu d1,\\(d2,a2\\).*
|
|
.*movhu d1,\\(0x80.*\\).*
|
|
.*movhu d1,\\(0x1ffff.*\\).*
|
|
.*$gdb_prompt $" { pass "movhu tests" }
|
|
-re "$gdb_prompt $" { fail "movhu tests" }
|
|
timeout { fail "(timeout) movhu tests" }
|
|
}
|
|
}
|
|
|
|
proc movm_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/4i movm_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*movm \\(sp\\),.a2,a3..*
|
|
.*movm \\(sp\\),.d2,d3,a2,a3,other..*
|
|
.*movm .a2,a3.,\\(sp\\).*
|
|
.*movm .d2,d3,a2,a3,other.,\\(sp\\).*
|
|
.*$gdb_prompt $" { pass "movm tests" }
|
|
-re "$gdb_prompt $" { fail "movm tests" }
|
|
timeout { fail "(timeout) movm tests" }
|
|
}
|
|
}
|
|
|
|
proc muldiv_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/4i muldiv_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*mul d1,d2.*
|
|
.*mulu d2,d3.*
|
|
.*div d3,d3.*
|
|
.*divu d3,d2.*
|
|
.*$gdb_prompt $" { pass "muldiv tests" }
|
|
-re "$gdb_prompt $" { fail "muldiv tests" }
|
|
timeout { fail "(timeout) muldiv tests" }
|
|
}
|
|
}
|
|
|
|
proc other_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/19i other_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*clr d2.*
|
|
.*inc d1.*
|
|
.*inc a2.*
|
|
.*inc4 a3.*
|
|
.*jmp \\(a2\\).*
|
|
.*jmp 0x\[0-9a-f]+ <main>.*
|
|
.*jmp 0x\[0-9a-f]+ <start>.*
|
|
.*call 0x\[0-9a-f]+ <main>,.a2,a3.,9.*
|
|
.*call 0x\[0-9a-f]+ <start>,.a2,a3.,32.*
|
|
.*calls \\(a2\\).*
|
|
.*calls 0x\[0-9a-f]+ <main>.*
|
|
.*calls 0x\[0-9a-f]+ <start>.*
|
|
.*ret .a2,a3.,7.*
|
|
.*retf .a2,a3.,5.*
|
|
.*rets.*
|
|
.*rti.*
|
|
.*trap.*
|
|
.*nop.*
|
|
.*rtm.*
|
|
.*$gdb_prompt $" { pass "other tests" }
|
|
-re "$gdb_prompt $" { fail "other tests" }
|
|
timeout { fail "(timeout) other tests" }
|
|
}
|
|
}
|
|
|
|
proc shift_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/9i shift_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*asr d1,d2.*
|
|
.*asr 4,d2.*
|
|
.*lsr d2,d3.*
|
|
.*lsr 4,d3.*
|
|
.*asl d3,d2.*
|
|
.*asl 4,d2.*
|
|
.*asl2 d2.*
|
|
.*ror d1.*
|
|
.*rol d2.*
|
|
.*$gdb_prompt $" { pass "shift tests" }
|
|
-re "$gdb_prompt $" { fail "shift tests" }
|
|
timeout { fail "(timeout) shift tests" }
|
|
}
|
|
}
|
|
|
|
proc sub_tests { } {
|
|
global gdb_prompt
|
|
global hex
|
|
global decimal
|
|
|
|
send_gdb "x/7i sub_tests\n"
|
|
gdb_expect {
|
|
-re "
|
|
.*sub d1,d2.*
|
|
.*sub d2,a3.*
|
|
.*sub a3,d3.*
|
|
.*sub a3,a2.*
|
|
.*sub 131071,d2.*
|
|
.*sub 131071,a1.*
|
|
.*subc d1,d2.*
|
|
.*$gdb_prompt $" { pass "sub tests" }
|
|
-re "$gdb_prompt $" { fail "sub tests" }
|
|
timeout { fail "(timeout) sub tests" }
|
|
}
|
|
}
|
|
|
|
# Start with a fresh gdb.
|
|
|
|
gdb_exit
|
|
gdb_start
|
|
gdb_reinitialize_dir $srcdir/$subdir
|
|
gdb_load $binfile
|
|
|
|
add_tests
|
|
bcc_tests
|
|
bit_tests
|
|
cmp_tests
|
|
extend_tests
|
|
extended_tests
|
|
logical_tests
|
|
loop_tests
|
|
mov_tests_1
|
|
mov_tests_2
|
|
mov_tests_3
|
|
mov_tests_4
|
|
movbu_tests
|
|
movhu_tests
|
|
movm_tests
|
|
muldiv_tests
|
|
other_tests
|
|
shift_tests
|
|
sub_tests
|