⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basic.exp

📁 GNU binutils是GNU交叉工具链中的一个源码包
💻 EXP
📖 第 1 页 / 共 2 页
字号:
    gas_start "logical.s" "-al"    # Instead of having a variable for each match string just increment the    # total number of matches seen.  That's simpler when testing large numbers    # of instructions (as these tests to).    while 1 {	expect {	    -re "^ +\[0-9\]+ 0000 4531\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0002 C5360700\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0006 2530\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0008 0531\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 000a 85360700\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 000e 2531\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0010 A5360700\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "\[^\n\]*\n"				{ }	    timeout				{ perror "timeout\n"; break }	    eof					{ break }	}    }    # This was intended to do any cleanup necessary.  It kinda looks like it    # isn't needed, but just in case, please keep it in for now.    gas_finish    # Did we find what we were looking for?  If not, flunk it.    if [expr $x==7] then { pass $testname } else { fail $testname }}proc do_mem {} {    set testname "mem.s: memory operations"    set x 0    gas_start "mem.s" "-al"    # Instead of having a variable for each match string just increment the    # total number of matches seen.  That's simpler when testing large numbers    # of instructions (as these tests to).    while 1 {	expect {	    -re "^ +\[0-9\]+ 0000 05370500\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0004 25370400\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0008 25370500\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 000c 4033\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 000e 4034\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0010 4035\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0012 462F0500\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0016 662F0400\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 001a 662F0500\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 001e C033\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0020 C034\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0022 4135\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "\[^\n\]*\n"				{ }	    timeout				{ perror "timeout\n"; break }	    eof					{ break }	}    }    # This was intended to do any cleanup necessary.  It kinda looks like it    # isn't needed, but just in case, please keep it in for now.    gas_finish    # Did we find what we were looking for?  If not, flunk it.    if [expr $x==12] then { pass $testname } else { fail $testname }}proc do_misc {} {    set testname "misc.s: misc operations"    set x 0    gas_start "misc.s" "-al"    # Instead of having a variable for each match string just increment the    # total number of matches seen.  That's simpler when testing large numbers    # of instructions (as these tests to).    while 1 {	expect {	    -re "^ +\[0-9\]+ 0000 E0076001\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0004 E0876001\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0008 E0072001\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 000c 0000\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 000e E0074001\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0012 E0070001\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0016 FF070001\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 001a E72F2000\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 001e E53F4000\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "\[^\n\]*\n"				{ }	    timeout				{ perror "timeout\n"; break }	    eof					{ break }	}    }    # This was intended to do any cleanup necessary.  It kinda looks like it    # isn't needed, but just in case, please keep it in for now.    gas_finish    # Did we find what we were looking for?  If not, flunk it.    if [expr $x==9] then { pass $testname } else { fail $testname }}proc do_move {} {    set testname "move.s: move operations"    set x 0    gas_start "move.s" "-al"    # Instead of having a variable for each match string just increment the    # total number of matches seen.  That's simpler when testing large numbers    # of instructions (as these tests to).    while 1 {	expect {	    -re "^ +\[0-9\]+ 0000 0530\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0002 0532\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0004 25360700\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0008 45360700\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "\[^\n\]*\n"				{ }	    timeout				{ perror "timeout\n"; break }	    eof					{ break }	}    }    # This was intended to do any cleanup necessary.  It kinda looks like it    # isn't needed, but just in case, please keep it in for now.    gas_finish    # Did we find what we were looking for?  If not, flunk it.    if [expr $x==4] then { pass $testname } else { fail $testname }}proc do_hilo {} {    set testname "hilo.s: hilo tests"    set x 0    gas_start "hilo.s" "-al"    # Instead of having a variable for each match string just increment the    # total number of matches seen.  That's simpler when testing large numbers    # of instructions (as these tests to).    while 1 {	expect {	    -re "^ +\[0-9\]+ 0000 200EEFBE\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0004 410EAEDE\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "^ +\[0-9\]+ 0008 410EADDE\[^\n\]*\n"	{ set x [expr $x+1] }	    -re "\[^\n\]*\n"				{ }	    timeout				{ perror "timeout\n"; break }	    eof					{ break }	}    }    # This was intended to do any cleanup necessary.  It kinda looks like it    # isn't needed, but just in case, please keep it in for now.    gas_finish    # Did we find what we were looking for?  If not, flunk it.    if [expr $x==3] then { pass $testname } else { fail $testname }}proc do_simple_reloc_tests {} {    set testname "reloc.s: Test for proper relocations (part 2)"    set x 0    if [gas_test_old "reloc.s" "" "Test for proper relocation (part 1)"] then {	objdump_start_no_subdir "a.out" "-r"	while 1 {	    expect {		-re "^00000002\[^\n\]*R_V850_LO16\[^\n\]*\n"			{ set x [expr $x+1] }		-re "^00000006\[^\n\]*R_V850_HI16_S\[^\n\]*\n"			{ set x [expr $x+1] }		-re "^0000000a\[^\n\]*R_V850_HI16\[^\n\]*\n"			{ set x [expr $x+1] }		-re "^0000000e\[^\n\]*R_V850_ZDA_16_16_OFFSET\[^\n\]*\n"			{ set x [expr $x+1] }		-re "^00000012\[^\n\]*R_V850_TDA_16_16_OFFSET\[^\n\]*\n"			{ set x [expr $x+1] }		-re "^00000016\[^\n\]*R_V850_SDA_16_16_OFFSET\[^\n\]*\n"			{ set x [expr $x+1] }		-re "\[^\n\]*\n"				{ }		timeout			{ perror "timeout\n"; break }		eof				{ break }	    }	}    }    # This was intended to do any cleanup necessary.  It kinda looks like it    # isn't needed, but just in case, please keep it in for now.    objdump_finish    # Did we find what we were looking for?  If not, flunk it.    if [expr $x==6] then { pass $testname } else { fail $testname }}if [istarget v850*-*-*] then {    # Test the basic instruction parser.    do_arith    do_bit    do_branch    do_compare    do_jumps    do_logical    do_mem    do_misc    do_move    # Make sure we handle lo() hi() and hi0() correctly.    do_hilo    # Check for proper relocs on lo, hi, hi0, zdaoff, tdaoff and sdaoff    # expressions    do_simple_reloc_tests    gas_test "hilo2.s" "" "" "hi/lo regression test"    gas_test "fepsw.s" "" "" "eqsw regression test"    gas_test_error "range.s" "-mwarn-signed-overflow" "Check for range error on byte load/store"    run_dump_test "v850e1"    run_dump_test "split-lo16"}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -