X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Ftestsuite%2Fgas%2Fi386%2Fi386.exp;h=e6e50808ffc5118e6b2751285a1e0e46cd8addbe;hb=76bc74dc40db159493206725ff7d65ad5cd4897d;hp=386323a07ca964f0dc75057d5570695202f71366;hpb=6e0b89ee6c97bd3145b27d67b20514f907e5fefd;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 386323a07c..e6e50808ff 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -1,26 +1,13 @@ # # 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]; + return [regexp "targets:.*x86-64" $nm_help] } proc gas_32_check { } { @@ -29,10 +16,9 @@ proc gas_32_check { } { global srcdir catch "exec $srcdir/lib/run $NM $NMFLAGS --help" nm_help - return [regexp "targets:.*i386" $nm_help]; + return [regexp "targets:.*i386" $nm_help] } - if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] then { global ASFLAGS @@ -42,34 +28,193 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_list_test "float" "-al" run_list_test "general" "-al --listing-lhs-width=2" run_list_test "inval" "-al" + run_list_test "segment" "-al" + run_list_test "inval-seg" "-al" run_list_test "modrm" "-al --listing-lhs-width=2" run_dump_test "naked" run_dump_test "opcode" + run_dump_test "opcode-intel" + run_dump_test "opcode-suffix" run_dump_test "intel" + run_dump_test "intel16" + run_list_test "intelbad" "" + run_dump_test "intelok" run_dump_test "prefix" run_dump_test "amd" run_dump_test "katmai" run_dump_test "jump" run_dump_test "ssemmx2" run_dump_test "sse2" + run_dump_test "sub" + run_dump_test "prescott" + run_dump_test "sib" + run_dump_test "vmx" + run_dump_test "suffix" + run_dump_test "immed32" + run_dump_test "equ" + run_dump_test "divide" + run_dump_test "padlock" + run_dump_test "crx" + run_list_test "cr-err" "" + run_dump_test "svme" + run_dump_test "amdfam10" + run_dump_test "merom" + run_dump_test "rep" + run_dump_test "rep-suffix" + run_dump_test "fp" + run_dump_test "nops" + run_dump_test "nops16-1" + run_dump_test "nops-1" + run_dump_test "nops-1-i386" + run_dump_test "nops-1-i386-i686" + run_dump_test "nops-1-i686" + run_dump_test "nops-1-k8" + run_dump_test "nops-1-merom" + run_dump_test "nops-2" + run_dump_test "nops-2-i386" + run_dump_test "nops-2-merom" + run_dump_test "nops-3" + run_dump_test "nops-3-i386" + run_dump_test "nops-3-i686" + run_dump_test "nops-4" + run_dump_test "nops-4-i386" + run_dump_test "nops-4-i686" + run_dump_test "addr16" + run_dump_test "addr32" + run_dump_test "sse4_1" + run_dump_test "sse4_2" + run_dump_test "crc32" + run_dump_test "crc32-intel" + run_list_test "inval-crc32" "-al" + run_dump_test "simd" + run_dump_test "simd-intel" # 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 { + if {[is_elf_format] || [istarget "*-*-coff*"]} then { run_dump_test "reloc" run_dump_test "jump16" run_list_test "white" "-al --listing-lhs-width=3" + + # These tests should in theory work for PE targets as well, + # but the relocs we currently produce are slightly different + # from those produced for ELF/COFF based toolchains. + # So for now we ignore PE targets. + run_dump_test "pcrel" + run_dump_test "absrel" } + + # ELF specific tests + if [is_elf_format] then { + # PIC is only supported on ELF targets. + run_dump_test "intelpic" + + run_dump_test "relax" + run_dump_test "gotpc" + run_dump_test "tlsd" + run_dump_test "tlspic" + run_dump_test "tlsnopic" + run_dump_test "bss" + run_dump_test "reloc32" + run_list_test "reloc32" "--defsym _bad_=1" + run_dump_test "mixed-mode-reloc32" + } + + # This is a PE specific test. + if { [istarget "*-*-cygwin*"] || [istarget "*-*-pe"] + || [istarget "*-*-mingw*"] + } then { + run_dump_test "secrel" + } + set ASFLAGS "$old_ASFLAGS" } -if [gas_64_check] then { +if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] then { global ASFLAGS set old_ASFLAGS "$ASFLAGS" set ASFLAGS "$ASFLAGS --64" run_dump_test "x86_64" + run_dump_test "x86-64-addr32" + run_dump_test "x86-64-addr32-intel" + run_dump_test "x86-64-opcode" + run_dump_test "x86-64-pcrel" + run_dump_test "x86-64-rip" + run_dump_test "x86-64-rip-intel" + run_dump_test "x86-64-stack" + run_dump_test "x86-64-stack-intel" + run_dump_test "x86-64-stack-suffix" + run_list_test "x86-64-inval" "-al" + run_list_test "x86-64-segment" "-al" + run_list_test "x86-64-inval-seg" "-al" + run_dump_test "x86-64-branch" + run_dump_test "svme64" + run_dump_test "x86-64-amdfam10" + run_dump_test "x86-64-vmx" + run_dump_test "immed64" + run_dump_test "x86-64-prescott" + run_dump_test "x86-64-crx" + run_dump_test "x86-64-crx-suffix" + run_dump_test "x86-64-drx" + run_dump_test "x86-64-drx-suffix" + run_dump_test "x86-64-merom" + run_dump_test "x86-64-rep" + run_dump_test "x86-64-rep-suffix" + run_dump_test "x86-64-cbw" + run_dump_test "x86-64-cbw-intel" + run_dump_test "x86-64-io" + run_dump_test "x86-64-io-intel" + run_dump_test "x86-64-io-suffix" + run_dump_test "x86-64-gidt" + run_dump_test "x86-64-nops" + run_dump_test "x86-64-nops-1" + run_dump_test "x86-64-nops-1-k8" + run_dump_test "x86-64-nops-1-nocona" + run_dump_test "x86-64-nops-1-merom" + run_dump_test "x86-64-nops-2" + run_dump_test "x86-64-nops-3" + run_dump_test "x86-64-nops-4" + run_dump_test "x86-64-nops-4-core2" + run_dump_test "x86-64-nops-4-k8" + run_dump_test "x86-64-sse4_1" + run_dump_test "x86-64-sse4_2" + run_dump_test "x86-64-crc32" + run_dump_test "x86-64-crc32-intel" + run_list_test "x86-64-inval-crc32" "-al" + run_dump_test "x86-64-simd" + run_dump_test "x86-64-simd-intel" + + if { ![istarget "*-*-aix*"] + && ![istarget "*-*-beos*"] + && ![istarget "*-*-*bsd*"] + && ![istarget "*-*-chaos*"] + && ![istarget "*-*-kaos*"] + && ![istarget "*-*-lynx*"] + && ![istarget "*-*-moss*"] + && ![istarget "*-*-nto-qnx*"] + && ![istarget "*-*-rtems*"] + && ![istarget "*-*-sco*"] + && ![istarget "*-*-solaris*"] + && ![istarget "*-*-sysv*"] } then { + run_dump_test "rex" + } + + # For ELF targets verify that @unwind works. + if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] + || [istarget "*-*-solaris2.*"]) + && ![istarget *-*-linux*aout*] + && ![istarget *-*-linux*oldld*] } then { + run_dump_test "x86-64-unwind" + } + + # ELF specific tests + if [is_elf_format] then { + run_dump_test "reloc64" + run_list_test "reloc64" "--defsym _bad_=1" + run_dump_test "mixed-mode-reloc64" + } set ASFLAGS "$old_ASFLAGS" }