xref: /openbsd/regress/sys/arch/amd64/fpu/Makefile (revision 09467b48)
1# $OpenBSD: Makefile,v 1.1.1.1 2018/08/21 18:35:18 bluhm Exp $
2
3PROGS =		fenv fdump fdfl feget fxproc0
4SRCS_fenv =	fenv.S
5LDADD_fenv =	-nostdlib -nopie
6LDADD_fdfl =	-lm
7LDADD_feget =	-lm
8LDADD_fxproc0 =	-lkvm
9CFLAGS =	-O2 ${PIPE} ${DEBUG}
10CFLAGS +=	-Wformat -Wno-compare-distinct-pointer-types
11WARNINGS =	yes
12CLEANFILES =	*.out
13
14MODEL !=	sysctl -n hw.model | tr -c '[:alnum:]' '_'
15ALLOWKMEM !=	sysctl -n kern.allowkmem
16
17REGRESS_TARGETS +=	run-regress-fenv
18run-regress-fenv: fenv fdump
19	@echo '\n======== $@ ========'
20.if ${MODEL:C/.*_AMD_Opteron_.*/opteron/} != opteron
21	# Load FPU environment directly at _start and write it.
22	# Read FPU environment and print it to stdout.
23	./fenv | ./fdump >fenv.out
24	diff ${.CURDIR}/fenv_t.ok fenv.out
25.else
26	# Early AMD Opteron processors behave differently.
27	@echo SKIPPED
28.endif
29
30REGRESS_TARGETS +=	run-regress-fdfl
31run-regress-fdfl: fdfl
32	@echo '\n======== $@ ========'
33	# Print default libm FPU environment to stdout.
34	./fdfl >fdfl.out
35	diff ${.CURDIR}/fenv_t.ok fdfl.out
36
37REGRESS_TARGETS +=	run-regress-feget
38run-regress-feget: feget
39	@echo '\n======== $@ ========'
40.if ${MODEL:C/.*_AMD_Opteron_.*/opteron/} != opteron
41	# Get FPU environment via libm and print it to stdout.
42	./feget >feget.out
43	diff ${.CURDIR}/fenv_t.ok feget.out
44.else
45	# Early AMD Opteron processors behave differently.
46	@echo SKIPPED
47.endif
48
49REGRESS_TARGETS +=	run-regress-fxproc0
50run-regress-fxproc0: fxproc0
51	@echo '\n======== $@ ========'
52.if ${ALLOWKMEM}
53	# Read FPU storage area from proc0 via /dev/mem and print it to stdout.
54	${SUDO} ./fxproc0 >fxproc0.out
55	diff ${.CURDIR}/fxsave64.ok fxproc0.out
56.else
57	# Set sysctl kern.allowkmem=1 for additional tests.
58	@echo SKIPPED
59.endif
60
61.include <bsd.regress.mk>
62