# # i386 tests # proc gas_64_check { } { global NM global NMFLAGS set status [gas_host_run "$NM $NMFLAGS --help" ""] return [regexp "targets:.*x86-64" [lindex $status 1]]; } proc gas_32_check { } { global NM global NMFLAGS set status [gas_host_run "$NM $NMFLAGS --help" ""] return [regexp "targets:.*i386" [lindex $status 1]]; } 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 -mmnemonic=att" run_list_test "general" "-al --listing-lhs-width=2 -mold-gcc" 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 "sib-intel" run_dump_test "vmx" run_dump_test "smx" 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_1-intel" run_dump_test "sse4_2" run_dump_test "sse4_2-intel" run_dump_test "crc32" run_dump_test "crc32-intel" run_list_test "inval-crc32" "-al" run_dump_test "simd" run_dump_test "simd-intel" run_dump_test "simd-suffix" run_dump_test "mem" run_dump_test "mem-intel" run_dump_test "reg" run_dump_test "reg-intel" run_dump_test "i386" run_dump_test "compat" run_dump_test "compat-intel" run_dump_test "arch-1" run_dump_test "arch-2" run_dump_test "arch-3" run_dump_test "arch-4" run_dump_test "arch-5" run_dump_test "arch-6" run_dump_test "arch-7" run_dump_test "arch-8" run_dump_test "arch-9" run_dump_test "arch-10" run_list_test "arch-10-1" "-march=generic32 -I${srcdir}/$subdir -al" run_list_test "arch-10-2" "-march=i686 -I${srcdir}/$subdir -al" run_list_test "arch-10-3" "-march=i686+sse4.2 -I${srcdir}/$subdir -al" run_list_test "arch-10-4" "-march=i686+sse4+vmx+smx -I${srcdir}/$subdir -al" run_dump_test "arch-11" run_dump_test "arch-12" run_dump_test "xsave" run_dump_test "xsave-intel" run_dump_test "aes" run_dump_test "aes-intel" run_dump_test "clmul" run_dump_test "clmul-intel" run_dump_test "avx" run_dump_test "avx-intel" run_dump_test "sse2avx" run_list_test "inval-avx" "-al" run_dump_test "sse-check" run_dump_test "sse-check-warn" run_list_test "sse-check-error" "-msse-check=error -I${srcdir}/$subdir -al" # These tests require support for 8 and 16 bit relocs, # so we only run them for ELF and COFF targets. 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" run_dump_test "att-regs" run_dump_test "intel-regs" run_list_test "inval-equ-1" "-al" run_list_test "inval-equ-2" "-al" } # This is a PE specific test. if { [istarget "*-*-cygwin*"] || [istarget "*-*-pe"] || [istarget "*-*-mingw*"] } then { run_dump_test "secrel" } set ASFLAGS "$old_ASFLAGS" } 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_1-intel" run_dump_test "x86-64-sse4_2" run_dump_test "x86-64-sse4_2-intel" 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" run_dump_test "x86-64-simd-suffix" run_dump_test "x86-64-sse5" run_dump_test "x86-64-mem" run_dump_test "x86-64-mem-intel" run_dump_test "x86-64-reg" run_dump_test "x86-64-reg-intel" run_dump_test "x86-64-sib" run_dump_test "x86-64-sib-intel" run_dump_test "x86-64-opcode-inval" run_dump_test "x86-64-opcode-inval-intel" run_dump_test "rexw" run_dump_test "x86-64-arch-1" run_dump_test "x86-64-arch-2" run_dump_test "x86-64-xsave" run_dump_test "x86-64-xsave-intel" run_dump_test "x86-64-aes" run_dump_test "x86-64-aes-intel" run_dump_test "x86-64-clmul" run_dump_test "x86-64-clmul-intel" run_dump_test "x86-64-avx" run_dump_test "x86-64-avx-intel" run_dump_test "x86-64-sse2avx" run_list_test "x86-64-inval-avx" "-al" run_dump_test "x86-64-sse-check" run_dump_test "x86-64-sse-check-warn" run_list_test "x86-64-sse-check-error" "-msse-check=error -I${srcdir}/$subdir -al" 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" }