1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
222d651dcSMichael Ellerman# The loops are all 64-bit code
322d651dcSMichael EllermanCFLAGS += -m64
422d651dcSMichael EllermanCFLAGS += -I$(CURDIR)
522d651dcSMichael EllermanCFLAGS += -D SELFTEST
68edcee0eSMichael EllermanCFLAGS += -maltivec
798c45f51SPaul MackerrasCFLAGS += -mcpu=power4
822d651dcSMichael Ellerman
9b6f534d1SMichael Ellerman# Use our CFLAGS for the implicit .S rule & set the asm machine type
10b6f534d1SMichael EllermanASFLAGS = $(CFLAGS) -Wa,-mpower4
1122d651dcSMichael Ellerman
1298c45f51SPaul MackerrasTEST_GEN_PROGS := copyuser_64_t0 copyuser_64_t1 copyuser_64_t2 \
1398c45f51SPaul Mackerras		copyuser_p7_t0 copyuser_p7_t1 \
1498c45f51SPaul Mackerras		memcpy_64_t0 memcpy_64_t1 memcpy_64_t2 \
15*ec6347bbSDan Williams		memcpy_p7_t0 memcpy_p7_t1 copy_mc_64 \
162679f63fSMichael Ellerman		copyuser_64_exc_t0 copyuser_64_exc_t1 copyuser_64_exc_t2
1798c45f51SPaul Mackerras
182679f63fSMichael EllermanEXTRA_SOURCES := validate.c ../harness.c stubs.S
1922d651dcSMichael Ellerman
207e0cf1c9SMichael Ellermantop_srcdir = ../../../../..
2188baa78dS[email protected]include ../../lib.mk
2222d651dcSMichael Ellerman
2398c45f51SPaul Mackerras$(OUTPUT)/copyuser_64_t%:	copyuser_64.S $(EXTRA_SOURCES)
2498c45f51SPaul Mackerras	$(CC) $(CPPFLAGS) $(CFLAGS) \
2598c45f51SPaul Mackerras		-D COPY_LOOP=test___copy_tofrom_user_base \
2698c45f51SPaul Mackerras		-D SELFTEST_CASE=$(subst copyuser_64_t,,$(notdir $@)) \
2798c45f51SPaul Mackerras		-o $@ $^
2822d651dcSMichael Ellerman
2998c45f51SPaul Mackerras$(OUTPUT)/copyuser_p7_t%:	copyuser_power7.S $(EXTRA_SOURCES)
3098c45f51SPaul Mackerras	$(CC) $(CPPFLAGS) $(CFLAGS) \
3198c45f51SPaul Mackerras		-D COPY_LOOP=test___copy_tofrom_user_power7 \
3298c45f51SPaul Mackerras		-D SELFTEST_CASE=$(subst copyuser_p7_t,,$(notdir $@)) \
3398c45f51SPaul Mackerras		-o $@ $^
3498c45f51SPaul Mackerras
3598c45f51SPaul Mackerras# Strictly speaking, we only need the memcpy_64 test cases for big-endian
3698c45f51SPaul Mackerras$(OUTPUT)/memcpy_64_t%:	memcpy_64.S $(EXTRA_SOURCES)
3798c45f51SPaul Mackerras	$(CC) $(CPPFLAGS) $(CFLAGS) \
3898c45f51SPaul Mackerras		-D COPY_LOOP=test_memcpy \
3998c45f51SPaul Mackerras		-D SELFTEST_CASE=$(subst memcpy_64_t,,$(notdir $@)) \
4098c45f51SPaul Mackerras		-o $@ $^
4198c45f51SPaul Mackerras
4298c45f51SPaul Mackerras$(OUTPUT)/memcpy_p7_t%:	memcpy_power7.S $(EXTRA_SOURCES)
4398c45f51SPaul Mackerras	$(CC) $(CPPFLAGS) $(CFLAGS) \
4498c45f51SPaul Mackerras		-D COPY_LOOP=test_memcpy_power7 \
4598c45f51SPaul Mackerras		-D SELFTEST_CASE=$(subst memcpy_p7_t,,$(notdir $@)) \
4698c45f51SPaul Mackerras		-o $@ $^
472679f63fSMichael Ellerman
48*ec6347bbSDan Williams$(OUTPUT)/copy_mc_64: copy_mc_64.S $(EXTRA_SOURCES)
496f62a822SSantosh Sivaraj	$(CC) $(CPPFLAGS) $(CFLAGS) \
50*ec6347bbSDan Williams		-D COPY_LOOP=test_copy_mc_generic \
516f62a822SSantosh Sivaraj		-o $@ $^
526f62a822SSantosh Sivaraj
532679f63fSMichael Ellerman$(OUTPUT)/copyuser_64_exc_t%: copyuser_64.S exc_validate.c ../harness.c \
542679f63fSMichael Ellerman		copy_tofrom_user_reference.S stubs.S
552679f63fSMichael Ellerman	$(CC) $(CPPFLAGS) $(CFLAGS) \
562679f63fSMichael Ellerman		-D COPY_LOOP=test___copy_tofrom_user_base \
572679f63fSMichael Ellerman		-D SELFTEST_CASE=$(subst copyuser_64_exc_t,,$(notdir $@)) \
582679f63fSMichael Ellerman		-o $@ $^
59