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_t0 copyuser_p7_t1 \
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_t%: copyuser_power7.S $(EXTRA_SOURCES)
32 $(CC) $(CPPFLAGS) $(CFLAGS) \
33 -D COPY_LOOP=test___copy_tofrom_user_power7 \
34 -D SELFTEST_CASE=$(subst copyuser_p7_t,,$(notdir $@)) \
35 -o $@ $^
36
37# Strictly speaking, we only need the memcpy_64 test cases for big-endian
38$(OUTPUT)/memcpy_64_t%: memcpy_64.S $(EXTRA_SOURCES)
39 $(CC) $(CPPFLAGS) $(CFLAGS) \
40 -D COPY_LOOP=test_memcpy \
41 -D SELFTEST_CASE=$(subst memcpy_64_t,,$(notdir $@)) \
42 -o $@ $^
43
44$(OUTPUT)/memcpy_p7_t%: memcpy_power7.S $(EXTRA_SOURCES)
45 $(CC) $(CPPFLAGS) $(CFLAGS) \
46 -D COPY_LOOP=test_memcpy_power7 \
47 -D SELFTEST_CASE=$(subst memcpy_p7_t,,$(notdir $@)) \
48 -o $@ $^
49
50$(OUTPUT)/copy_mc_64: copy_mc_64.S $(EXTRA_SOURCES)
51 $(CC) $(CPPFLAGS) $(CFLAGS) \
52 -D COPY_LOOP=test_copy_mc_generic \
53 -o $@ $^
54
55$(OUTPUT)/copyuser_64_exc_t%: copyuser_64.S exc_validate.c ../harness.c \
56 copy_tofrom_user_reference.S stubs.S
57 $(CC) $(CPPFLAGS) $(CFLAGS) \
58 -D COPY_LOOP=test___copy_tofrom_user_base \
59 -D SELFTEST_CASE=$(subst copyuser_64_exc_t,,$(notdir $@)) \
60 -o $@ $^
61
62$(OUTPUT)/memmove_64: mem_64.S memcpy_64.S memmove_validate.c ../harness.c \
63 memcpy_stubs.S
64 $(CC) $(CPPFLAGS) $(CFLAGS) \
65 -D TEST_MEMMOVE=test_memmove \
66 -o $@ $^