# # i386 tests # proc run_list_test { name opts } { global srcdir subdir set testname "i386 $name" set file $srcdir/$subdir/$name gas_run ${name}.s $opts ">&dump.out" if { [regexp_diff "dump.out" "${file}.l"] } then { fail $testname verbose "output is [file_contents "dump.out"]" 2 return } pass $testname } proc gas_64_check { } { global NM global NMFLAGS global srcdir catch "exec $srcdir/lib/run $NM $NMFLAGS --help" nm_help return [regexp "targets:.*x86-64" $nm_help]; } proc gas_32_check { } { global NM global NMFLAGS global srcdir catch "exec $srcdir/lib/run $NM $NMFLAGS --help" nm_help return [regexp "targets:.*i386" $nm_help]; } if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] then { global ASFLAGS set old_ASFLAGS "$ASFLAGS" set ASFLAGS "$ASFLAGS --32" run_list_test "float" "-al" run_list_test "general" "-al --listing-lhs-width=2" run_list_test "inval" "-al" run_list_test "modrm" "-al --listing-lhs-width=2" run_dump_test "naked" run_dump_test "opcode" run_dump_test "intel" run_dump_test "prefix" run_dump_test "amd" run_dump_test "katmai" run_dump_test "jump" run_dump_test "ssemmx2" run_dump_test "sse2" # These tests require support for 8 and 16 bit relocs, # so we only run them for ELF and COFF targets. if {[istarget "*-*-elf*"] || [istarget "*-*-linux*"] || [istarget "*-*-coff*"]} then { run_dump_test "reloc" run_dump_test "jump16" run_list_test "white" "-al --listing-lhs-width=3" } set ASFLAGS "$old_ASFLAGS" } if [gas_64_check] then { global ASFLAGS set old_ASFLAGS "$ASFLAGS" set ASFLAGS "$ASFLAGS --64" run_dump_test "x86_64" set ASFLAGS "$old_ASFLAGS" }