Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 $@ $^