xref: /linux/tools/testing/selftests/powerpc/copyloops/Makefile (revision c715f13bb30f9f4d1bd8888667ef32e43b6fedc1)
1# SPDX-License-Identifier: GPL-2.0
2TEST_GEN_PROGS := copyuser_64_t0 copyuser_64_t1 copyuser_64_t2 \
3		copyuser_p7 copyuser_p7_vmx \
4		memcpy_64_t0 memcpy_64_t1 memcpy_64_t2 \
5		memcpy_p7_t0 memcpy_p7_t1 copy_mc_64 \
6		copyuser_64_exc_t0 copyuser_64_exc_t1 copyuser_64_exc_t2 \
7		memmove_64
8
9EXTRA_SOURCES := validate.c ../harness.c stubs.S
10
11top_srcdir = ../../../../..
12include ../../lib.mk
13include ../flags.mk
14
15# The loops are all 64-bit code
16CFLAGS += -m64
17CFLAGS += -I$(CURDIR)
18CFLAGS += -D SELFTEST
19CFLAGS += -maltivec
20CFLAGS += -mcpu=power4
21
22# Use our CFLAGS for the implicit .S rule & set the asm machine type
23ASFLAGS = $(CFLAGS) -Wa,-mpower4
24
25$(OUTPUT)/copyuser_64_t%:	copyuser_64.S $(EXTRA_SOURCES)
26	$(CC) $(CPPFLAGS) $(CFLAGS) \
27		-D COPY_LOOP=test___copy_tofrom_user_base \
28		-D SELFTEST_CASE=$(subst copyuser_64_t,,$(notdir $@)) \
29		-o $@ $^
30
31$(OUTPUT)/copyuser_p7:	copyuser_power7.S $(EXTRA_SOURCES)
32	$(CC) $(CPPFLAGS) $(CFLAGS) \
33		-D COPY_LOOP=test___copy_tofrom_user_power7 \
34		-o $@ $^
35
36$(OUTPUT)/copyuser_p7_vmx:       copyuser_power7.S $(EXTRA_SOURCES) ../utils.c
37	$(CC) $(CPPFLAGS) $(CFLAGS) \
38		-D COPY_LOOP=test___copy_tofrom_user_power7_vmx \
39		-D VMX_TEST \
40		-o $@ $^
41
42# Strictly speaking, we only need the memcpy_64 test cases for big-endian
43$(OUTPUT)/memcpy_64_t%:	memcpy_64.S $(EXTRA_SOURCES)
44	$(CC) $(CPPFLAGS) $(CFLAGS) \
45		-D COPY_LOOP=test_memcpy \
46		-D SELFTEST_CASE=$(subst memcpy_64_t,,$(notdir $@)) \
47		-o $@ $^
48
49$(OUTPUT)/memcpy_p7_t%:	memcpy_power7.S $(EXTRA_SOURCES)
50	$(CC) $(CPPFLAGS) $(CFLAGS) \
51		-D COPY_LOOP=test_memcpy_power7 \
52		-D SELFTEST_CASE=$(subst memcpy_p7_t,,$(notdir $@)) \
53		-o $@ $^
54
55$(OUTPUT)/copy_mc_64: copy_mc_64.S $(EXTRA_SOURCES)
56	$(CC) $(CPPFLAGS) $(CFLAGS) \
57		-D COPY_LOOP=test_copy_mc_generic \
58		-o $@ $^
59
60$(OUTPUT)/copyuser_64_exc_t%: copyuser_64.S exc_validate.c ../harness.c \
61		copy_tofrom_user_reference.S stubs.S
62	$(CC) $(CPPFLAGS) $(CFLAGS) \
63		-D COPY_LOOP=test___copy_tofrom_user_base \
64		-D SELFTEST_CASE=$(subst copyuser_64_exc_t,,$(notdir $@)) \
65		-o $@ $^
66
67$(OUTPUT)/memmove_64: mem_64.S memcpy_64.S memmove_validate.c ../harness.c \
68		memcpy_stubs.S
69	$(CC) $(CPPFLAGS) $(CFLAGS) \
70		-D TEST_MEMMOVE=test_memmove \
71		-o $@ $^
72