📄 hppa.exp
字号:
.*addib,od -1,r4,.* <addib_tests_1>.*.*$gdb_prompt $" { pass "addib_tests_1" } -re "$gdb_prompt $" { fail "addib_tests_1" } timeout { fail "(timeout) addib_tests_1" } } send_gdb "x/8i addib_tests_2\n" gdb_expect { -re ".*addibf -1,r4,.* <addib_tests_2>.*.*addibf,= -1,r4,.* <addib_tests_2>.*.*addibf,< -1,r4,.* <addib_tests_2>.*.*addibf,<= -1,r4,.* <addib_tests_2>.*.*addibf,nuv -1,r4,.* <addib_tests_2>.*.*addibf,znv -1,r4,.* <addib_tests_2>.*.*addibf,sv -1,r4,.* <addib_tests_2>.*.*addibf,od -1,r4,.* <addib_tests_2>.*.*$gdb_prompt $" { pass "addib_tests_2" } -re "$gdb_prompt $" { fail "addib_tests_2" } timeout { fail "(timeout) addib_tests_2" } } send_gdb "x/8i addib_nullified_tests_1\n" gdb_expect { -re ".*addib,n -1,r4,.* <addib_tests_1>.*.*addib,=,n -1,r4,.* <addib_tests_1>.*.*addib,<,n -1,r4,.* <addib_tests_1>.*.*addib,<=,n -1,r4,.* <addib_tests_1>.*.*addib,nuv,n -1,r4,.* <addib_tests_1>.*.*addib,znv,n -1,r4,.* <addib_tests_1>.*.*addib,sv,n -1,r4,.* <addib_tests_1>.*.*addib,od,n -1,r4,.* <addib_tests_1>.*.*$gdb_prompt $" { pass "addb_nullified_tests_1" } -re "$gdb_prompt $" { fail "addb_nullified_tests_1" } timeout { fail "(timeout) addb_nullified_tests_1" } } send_gdb "x/8i addib_nullified_tests_2\n" gdb_expect { -re ".*addibf,n -1,r4,.* <addib_tests_2>.*.*addibf,=,n -1,r4,.* <addib_tests_2>.*.*addibf,<,n -1,r4,.* <addib_tests_2>.*.*addibf,<=,n -1,r4,.* <addib_tests_2>.*.*addibf,nuv,n -1,r4,.* <addib_tests_2>.*.*addibf,znv,n -1,r4,.* <addib_tests_2>.*.*addibf,sv,n -1,r4,.* <addib_tests_2>.*.*addibf,od,n -1,r4,.* <addib_tests_2>.*.*$gdb_prompt $" { pass "addb_nullified_tests_2" } -re "$gdb_prompt $" { fail "addb_nullified_tests_2" } timeout { fail "(timeout) addb_nullified_tests_2" } } send_gdb "x/8i bb_tests\n" gdb_expect { -re ".*bvb,< r4,.* <bb_tests>.*.*bvb,>= r4,.* <bb_tests>.*.*bvb,<,n r4,.* <bb_tests>.*.*bvb,>=,n r4,.* <bb_tests>.*.*bb,< r4,5,.* <bb_tests>.*.*bb,>= r4,5,.* <bb_tests>.*.*bb,<,n r4,5,.* <bb_tests>.*.*bb,>=,n r4,5,.* <bb_tests>.*.*$gdb_prompt $" { pass "bb_tests" } -re "$gdb_prompt $" { fail "bb_tests" } timeout { fail "(timeout) bb_tests " } }}proc all_integer_computational_tests { } { global gdb_prompt global hex global decimal set add_insns [list {add} {addl} {addo} {addc} {addco} \ {sh1add} {sh1addl} {sh1addo} \ {sh2add} {sh2addl} {sh2addo} \ {sh3add} {sh3addl} {sh3addo} ] foreach i $add_insns { send_gdb "x/16i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,r5,r6.*.*$i,= r4,r5,r6.*.*$i,< r4,r5,r6.*.*$i,<= r4,r5,r6.*.*$i,nuv r4,r5,r6.*.*$i,znv r4,r5,r6.*.*$i,sv r4,r5,r6.*.*$i,od r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,<> r4,r5,r6.*.*$i,>= r4,r5,r6.*.*$i,> r4,r5,r6.*.*$i,uv r4,r5,r6.*.*$i,vnz r4,r5,r6.*.*$i,nsv r4,r5,r6.*.*$i,ev r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set sub_insns [list {sub} {subo} {subb} {subbo} {subt} {subto} \ {ds} {comclr} ] foreach i $sub_insns { send_gdb "x/16i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,r5,r6.*.*$i,= r4,r5,r6.*.*$i,< r4,r5,r6.*.*$i,<= r4,r5,r6.*.*$i,<< r4,r5,r6.*.*$i,<<= r4,r5,r6.*.*$i,sv r4,r5,r6.*.*$i,od r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,<> r4,r5,r6.*.*$i,>= r4,r5,r6.*.*$i,> r4,r5,r6.*.*$i,>>= r4,r5,r6.*.*$i,>> r4,r5,r6.*.*$i,nsv r4,r5,r6.*.*$i,ev r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set logical_insns [list {or} {xor} {and} {andcm} ] foreach i $logical_insns { send_gdb "x/10i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,r5,r6.*.*$i,= r4,r5,r6.*.*$i,< r4,r5,r6.*.*$i,<= r4,r5,r6.*.*$i,od r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,<> r4,r5,r6.*.*$i,>= r4,r5,r6.*.*$i,> r4,r5,r6.*.*$i,ev r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set unit_insns1 [list {uxor} {uaddcm} {uaddcmt} ] foreach i $unit_insns1 { send_gdb "x/12i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,r5,r6.*.*$i,sbz r4,r5,r6.*.*$i,shz r4,r5,r6.*.*$i,sdc r4,r5,r6.*.*$i,sbc r4,r5,r6.*.*$i,shc r4,r5,r6.*.*$i,tr r4,r5,r6.*.*$i,nbz r4,r5,r6.*.*$i,nhz r4,r5,r6.*.*$i,ndc r4,r5,r6.*.*$i,nbc r4,r5,r6.*.*$i,nhc r4,r5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set unit_insns2 [list {dcor} {idcor} ] foreach i $unit_insns2 { send_gdb "x/12i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,r5.*.*$i,sbz r4,r5.*.*$i,shz r4,r5.*.*$i,sdc r4,r5.*.*$i,sbc r4,r5.*.*$i,shc r4,r5.*.*$i,tr r4,r5.*.*$i,nbz r4,r5.*.*$i,nhz r4,r5.*.*$i,ndc r4,r5.*.*$i,nbc r4,r5.*.*$i,nhc r4,r5.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set addi_insns [list {addi} {addio} {addit} {addito} ] foreach i $addi_insns { send_gdb "x/16i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i 7b,r5,r6.*.*$i,= 7b,r5,r6.*.*$i,< 7b,r5,r6.*.*$i,<= 7b,r5,r6.*.*$i,nuv 7b,r5,r6.*.*$i,znv 7b,r5,r6.*.*$i,sv 7b,r5,r6.*.*$i,od 7b,r5,r6.*.*$i,tr 7b,r5,r6.*.*$i,<> 7b,r5,r6.*.*$i,>= 7b,r5,r6.*.*$i,> 7b,r5,r6.*.*$i,uv 7b,r5,r6.*.*$i,vnz 7b,r5,r6.*.*$i,nsv 7b,r5,r6.*.*$i,ev 7b,r5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set subi_insns [list {subi} {subio} {comiclr} ] foreach i $subi_insns { send_gdb "x/16i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i 7b,r5,r6.*.*$i,= 7b,r5,r6.*.*$i,< 7b,r5,r6.*.*$i,<= 7b,r5,r6.*.*$i,<< 7b,r5,r6.*.*$i,<<= 7b,r5,r6.*.*$i,sv 7b,r5,r6.*.*$i,od 7b,r5,r6.*.*$i,tr 7b,r5,r6.*.*$i,<> 7b,r5,r6.*.*$i,>= 7b,r5,r6.*.*$i,> 7b,r5,r6.*.*$i,>>= 7b,r5,r6.*.*$i,>> 7b,r5,r6.*.*$i,nsv 7b,r5,r6.*.*$i,ev 7b,r5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } send_gdb "x/8i vshd_tests\n" gdb_expect { -re ".*vshd r4,r5,r6.*.*vshd,= r4,r5,r6.*.*vshd,< r4,r5,r6.*.*vshd,od r4,r5,r6.*.*vshd,tr r4,r5,r6.*.*vshd,<> r4,r5,r6.*.*vshd,>= r4,r5,r6.*.*vshd,ev r4,r5,r6.*.*$gdb_prompt $" { pass "vshd tests" } -re "$gdb_prompt $" { fail "vshd tests" } timeout { fail "(timeout) "vshd tests" } } send_gdb "x/8i shd_tests\n" gdb_expect { -re ".*shd r4,r5,5,r6.*.*shd,= r4,r5,5,r6.*.*shd,< r4,r5,5,r6.*.*shd,od r4,r5,5,r6.*.*shd,tr r4,r5,5,r6.*.*shd,<> r4,r5,5,r6.*.*shd,>= r4,r5,5,r6.*.*shd,ev r4,r5,5,r6.*.*$gdb_prompt $" { pass "shd tests" } -re "$gdb_prompt $" { fail "shd tests" } timeout { fail "(timeout) "shd tests" } } set extract_insns1 [list {extru} {extrs} {zdep} {dep} ] foreach i $extract_insns1 { send_gdb "x/8i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,5,10,r6.*.*$i,= r4,5,10,r6.*.*$i,< r4,5,10,r6.*.*$i,od r4,5,10,r6.*.*$i,tr r4,5,10,r6.*.*$i,<> r4,5,10,r6.*.*$i,>= r4,5,10,r6.*.*$i,ev r4,5,10,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set extract_insns2 [list {vextru} {vextrs} {zvdep} {vdep} ] foreach i $extract_insns2 { send_gdb "x/8i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i r4,5,r6.*.*$i,= r4,5,r6.*.*$i,< r4,5,r6.*.*$i,od r4,5,r6.*.*$i,tr r4,5,r6.*.*$i,<> r4,5,r6.*.*$i,>= r4,5,r6.*.*$i,ev r4,5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set extract_insns3 [list {vdepi} {zvdepi} ] foreach i $extract_insns3 { send_gdb "x/8i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i -1,5,r6.*.*$i,= -1,5,r6.*.*$i,< -1,5,r6.*.*$i,od -1,5,r6.*.*$i,tr -1,5,r6.*.*$i,<> -1,5,r6.*.*$i,>= -1,5,r6.*.*$i,ev -1,5,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } } set extract_insns4 [list {depi} {zdepi} ] foreach i $extract_insns4 { send_gdb "x/8i $i"; send_gdb "_tests\n" gdb_expect { -re ".*$i -1,4,10,r6.*.*$i,= -1,4,10,r6.*.*$i,< -1,4,10,r6.*.*$i,od -1,4,10,r6.*.*$i,tr -1,4,10,r6.*.*$i,<> -1,4,10,r6.*.*$i,>= -1,4,10,r6.*.*$i,ev -1,4,10,r6.*.*$gdb_prompt $" { pass "$i tests" } -re "$gdb_prompt $" { fail "$i tests" } timeout { fail "(timeout) $i tests" } } }}proc all_system_control_tests { } { global gdb_prompt global hex global decimal send_gdb "x/14i system_control_tests\n" gdb_expect { -re ".*break 5,c.*.*rfi.*.*rfir.*.*ssm 5,r4.*.*rsm 5,r4.*.*mtsm r4.*.*ldsid \\(sr0,r5\\),r4.*.*mtsp r4,sr0.*.*mtctl r4,ccr.*.*mfsp sr0,r4.*.*mfctl ccr,r4.*.*sync.*.*syncdma.*.*diag 4d2.*.*$gdb_prompt $" { pass "system_constrol_tests" } -re "$gdb_prompt $" { fail "system_control_tests" } timeout { file "(timeout) system_control_tests" } } send_gdb "x/4i probe_tests\n" gdb_expect { -re ".*prober \\(sr0,r5\\),r6,r7.*.*proberi \\(sr0,r5\\),1,r7.*.*probew \\(sr0,r5\\),r6,r7.*.*probewi \\(sr0,r5\\),1,r7.*.*$gdb_prompt $" { pass "probe_tests" } -re "$gdb_prompt $" { fail "probe_tests" } timeout { file "(timeout) probe_tests" } } # lci uses the same bit pattern as lha, so accept lha. send_gdb "x/5i lpa_tests\n" gdb_expect { -re ".*lpa r4\\(sr0,r5\\),r6.*.*lpa,m r4\\(sr0,r5\\),r6.*.*lha r4\\(sr0,r5\\),r6.*.*lha,m r4\\(sr0,r5\\),r6.*.*lha r4\\(sr0,r5\\),r6.*.*$gdb_prompt $" { pass "lpa_tests" } -re "$gdb_prompt $" { fail "lpa_tests" } timeout { file "(timeout) lpa_tests" } } send_gdb "x/18i purge_tests\n" gdb_expect { -re ".*pdtlb r4\\(sr0,r5\\).*.*pdtlb,m r4\\(sr0,r5\\).*.*pitlb r4\\(sr0,r5\\).*.*pitlb,m r4\\(sr0,r5\\).*.*pdtlbe r4\\(sr0,r5\\).*.*pdtlbe,m r4\\(sr0,r5\\).*.*pitlbe r4\\(sr0,r5\\).*.*pitlbe,m r4\\(sr0,r5\\).*.*pdc r4\\(sr0,r5\\).*.*pdc,m r4\\(sr0,r5\\).*.*fdc r4\\(sr0,r5\\).*.*fdc,m r4\\(sr0,r5\\).*.*fic r4\\(sr0,r5\\).*.*fic,m r4\\(sr0,r5\\).*.*fdce r4\\(sr0,r5\\).*.*fdce,m r4\\(sr0,r5\\).*.*fice r4\\(sr0,r5\\).*.*fice,m r4\\(sr0,r5\\).*.*$gdb_prompt $" { pass "purge_tests" } -re "$gdb_prompt $" { fail "purge_tests" } timeout { file "(timeout) purge_tests" } } send_gdb "x/4i insert_tests\n" gdb_expect { -re ".*idtlba r4,\\(sr0,r5\\).*.*iitlba r4,\\(sr0,r5\\).*.*idtlbp r4,\\(sr0,r5\\).*.*iitlbp r4,\\(sr0,r5\\).*.*$gdb_prompt $" { pass "insert_tests" } -re "$gdb_prompt $" { fail "insert_tests" } timeout { file "(timeout) insert_tests" } }}proc all_fpu_memory_tests { } {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -