Home | History | Annotate | Download | only in x86
      1 
      2 include $(top_srcdir)/Makefile.tool-tests.am
      3 
      4 dist_noinst_SCRIPTS = filter_cpuid filter_inf_nan filter_stderr gen_insn_test.pl
      5 
      6 CLEANFILES = $(addsuffix .c,$(INSN_TESTS))
      7 
      8 INSN_TESTS = insn_basic insn_cmov insn_mmx insn_mmxext
      9 
     10 if !COMPILER_IS_CLANG
     11    INSN_TESTS += insn_sse insn_sse2
     12 if BUILD_SSSE3_TESTS
     13    INSN_TESTS += insn_ssse3
     14 endif
     15 if BUILD_SSE3_TESTS
     16 if !SOLARIS_SUN_STUDIO_AS
     17 # Sun Studio assembler fails to build some tests (illegal mnemonic).
     18    INSN_TESTS += insn_sse3
     19 endif
     20 endif
     21 endif
     22 
     23 if !SOLARIS_SUN_STUDIO_AS
     24 # Sun Studio assembler fails to build some tests (illegal mnemonic).
     25    INSN_TESTS += insn_fpu
     26 endif
     27 
     28 # Explicitly include insn_sse3 even if ! BUILD_SSE3_TESTS, 
     29 # to avoid packaging screwups if 'make dist' is run on a machine
     30 # which failed the BUILD_SSE3_TESTS test in configure.in.
     31 
     32 ## FIXME: move lzcnt32 to SSE4 conditionalisation, when that happens.
     33 
     34 EXTRA_DIST = \
     35 	aad_aam.stdout.exp aad_aam.stderr.exp aad_aam.vgtest \
     36 	badseg.stderr.exp badseg.stdout.exp badseg.stdout.exp-solaris \
     37 	badseg.vgtest \
     38 	bt_everything.stderr.exp bt_everything.stdout.exp bt_everything.vgtest \
     39 	bt_literal.stderr.exp bt_literal.stdout.exp bt_literal.vgtest \
     40 	bug125959-x86.stderr.exp bug125959-x86.stdout.exp bug125959-x86.vgtest \
     41 	bug126147-x86.stderr.exp bug126147-x86.stdout.exp bug126147-x86.vgtest \
     42 	bug132813-x86.stderr.exp bug132813-x86.stdout.exp bug132813-x86.vgtest \
     43 	bug135421-x86.stderr.exp bug135421-x86.stdout.exp bug135421-x86.vgtest \
     44 	bug137714-x86.stderr.exp bug137714-x86.stdout.exp bug137714-x86.vgtest \
     45 	bug152818-x86.stderr.exp bug152818-x86.stdout.exp bug152818-x86.vgtest \
     46 	cet_nops.stderr.exp cet_nops.stdout.exp cet_nops.vgtest \
     47 	cmpxchg8b.stderr.exp cmpxchg8b.stdout.exp cmpxchg8b.vgtest \
     48 	cpuid.stderr.exp cpuid.stdout.exp cpuid.vgtest \
     49 	cse_fail.stderr.exp cse_fail.stdout.exp cse_fail.vgtest \
     50 	faultstatus.disabled faultstatus.stderr.exp \
     51 	fcmovnu.vgtest fcmovnu.stderr.exp fcmovnu.stdout.exp \
     52 	fpu_lazy_eflags.stderr.exp fpu_lazy_eflags.stdout.exp \
     53 	fpu_lazy_eflags.vgtest \
     54 	fxtract.stdout.exp fxtract.stderr.exp fxtract.vgtest \
     55 	fxtract.stdout.exp-older-glibc \
     56 	getseg.stdout.exp getseg.stderr.exp getseg.vgtest \
     57 	incdec_alt.stdout.exp incdec_alt.stderr.exp incdec_alt.vgtest \
     58 	int.stderr.exp int.stdout.exp int.disabled \
     59 	$(addsuffix .stderr.exp,$(INSN_TESTS)) \
     60 	$(addsuffix .stdout.exp,$(INSN_TESTS)) \
     61 	$(addsuffix .vgtest,$(INSN_TESTS)) \
     62 	insn_fpu.stdout.exp insn_fpu.stderr.exp insn_fpu.vgtest \
     63 	insn_sse.stdout.exp insn_sse.stderr.exp insn_sse.vgtest \
     64 	insn_sse2.stdout.exp insn_sse2.stderr.exp insn_sse2.vgtest \
     65 	insn_sse3.stdout.exp insn_sse3.stderr.exp insn_sse3.vgtest \
     66 	insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \
     67 	jcxz.stdout.exp jcxz.stderr.exp jcxz.vgtest \
     68 	lahf.stdout.exp lahf.stderr.exp lahf.vgtest \
     69 	looper.stderr.exp looper.stdout.exp looper.vgtest \
     70 	lzcnt32.stderr.exp lzcnt32.stdout.exp lzcnt32.vgtest \
     71 	movx.stderr.exp movx.stdout.exp movx.vgtest \
     72 	movbe.stderr.exp movbe.stdout.exp movbe.vgtest \
     73 	pushpopseg.stderr.exp pushpopseg.stdout.exp pushpopseg.vgtest \
     74 	sbbmisc.stderr.exp sbbmisc.stdout.exp sbbmisc.vgtest \
     75 	shift_ndep.stderr.exp shift_ndep.stdout.exp shift_ndep.vgtest \
     76 	smc1.stderr.exp smc1.stdout.exp smc1.vgtest \
     77 	ssse3_misaligned.stderr.exp ssse3_misaligned.stdout.exp \
     78 	ssse3_misaligned.vgtest ssse3_misaligned.c \
     79 	x86locked.vgtest x86locked.stdout.exp x86locked.stderr.exp \
     80 	x87trigOOR.vgtest x87trigOOR.stdout.exp x87trigOOR.stderr.exp \
     81 	yield.stderr.exp yield.stdout.exp yield.disabled \
     82 	xadd.stdout.exp xadd.stderr.exp xadd.vgtest
     83 
     84 check_PROGRAMS = \
     85 	aad_aam \
     86 	allexec \
     87 	badseg \
     88 	bt_everything \
     89 	bt_literal \
     90 	bug125959-x86 \
     91 	bug126147-x86 \
     92 	bug132813-x86 \
     93 	bug135421-x86 \
     94 	bug137714-x86 \
     95 	bug152818-x86 \
     96 	cet_nops \
     97 	cmpxchg8b \
     98 	cpuid \
     99 	cse_fail \
    100 	fcmovnu \
    101 	fpu_lazy_eflags \
    102 	fxtract \
    103 	getseg \
    104 	incdec_alt \
    105 	$(INSN_TESTS) \
    106 	int \
    107 	jcxz \
    108 	lahf \
    109 	looper \
    110 	movx \
    111 	sbbmisc \
    112 	shift_ndep \
    113 	smc1 \
    114 	x86locked \
    115 	x87trigOOR \
    116 	yield \
    117 	xadd
    118 if BUILD_SSSE3_TESTS
    119    check_PROGRAMS += ssse3_misaligned
    120 endif
    121 if BUILD_LZCNT_TESTS
    122  check_PROGRAMS += lzcnt32
    123 endif
    124 if BUILD_MOVBE_TESTS
    125  check_PROGRAMS += movbe
    126 endif
    127 if !VGCONF_OS_IS_DARWIN
    128 if !SOLARIS_SUN_STUDIO_AS
    129 # Sun Studio assembler fails to assemble the bound instruction
    130 if !COMPILER_IS_CLANG
    131 # clang errors out complaining that %eax as the 1st operand in the bound
    132 # insn is an invalid operand.
    133  check_PROGRAMS += faultstatus
    134 endif
    135 endif
    136 endif
    137 if !SOLARIS_SUN_STUDIO_AS
    138 # Sun Studio assembler fails to assemble pushw %fs, popw %fs
    139  check_PROGRAMS += pushpopseg
    140 endif
    141 
    142 
    143 AM_CFLAGS    += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
    144 AM_CXXFLAGS  += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
    145 AM_CCASFLAGS += @FLAG_M32@
    146 
    147 allexec_CFLAGS		= $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
    148 
    149 if VGCONF_OS_IS_DARWIN
    150 # Some of the tests (bug125959_x86, bug152818_x86, insn_*) need
    151 # -mdynamic-no-pic.  I tried setting *_CFLAGS separately for all of them,
    152 # but it caused problems with the generation of insn_*.c.  So just use this
    153 # crude approach of setting -mdynamic-no-pic for all tests in this
    154 # directory.
    155 AM_CFLAGS += -mdynamic-no-pic
    156 endif
    157 
    158 cpuid_SOURCES 		= cpuid_c.c cpuid_s.S
    159 # fpu_lazy_eflags must use these flags -- the bug only occurred with them.
    160 fpu_lazy_eflags_CFLAGS	= $(AM_CFLAGS) -O2 -march=pentiumpro
    161 fxtract_CFLAGS		= $(AM_CFLAGS) @FLAG_W_NO_OVERFLOW@
    162 fxtract_LDADD		= -lm
    163 insn_basic_SOURCES	= insn_basic.def
    164 insn_basic_LDADD	= -lm
    165 insn_fpu_SOURCES	= insn_fpu.def
    166 insn_fpu_LDADD		= -lm
    167 insn_cmov_SOURCES	= insn_cmov.def
    168 insn_cmov_LDADD		= -lm
    169 insn_mmx_SOURCES	= insn_mmx.def
    170 insn_mmx_LDADD		= -lm
    171 insn_mmxext_SOURCES	= insn_mmxext.def
    172 insn_mmxext_LDADD	= -lm
    173 insn_sse_SOURCES	= insn_sse.def
    174 insn_sse_LDADD		= -lm
    175 insn_sse2_SOURCES	= insn_sse2.def
    176 insn_sse2_LDADD		= -lm
    177 insn_sse3_SOURCES	= insn_sse3.def
    178 insn_sse3_LDADD		= -lm
    179 insn_ssse3_SOURCES	= insn_ssse3.def
    180 insn_ssse3_LDADD	= -lm
    181 x86locked_CFLAGS	= $(AM_CFLAGS) -O
    182 yield_LDADD		= -lpthread
    183 
    184 .def.c: $(srcdir)/gen_insn_test.pl
    185 	$(PERL) $(srcdir)/gen_insn_test.pl < $< > $@
    186