1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun# The loops are all 64-bit code 3*4882a593SmuzhiyunCFLAGS += -m64 4*4882a593SmuzhiyunCFLAGS += -I$(CURDIR) 5*4882a593SmuzhiyunCFLAGS += -D SELFTEST 6*4882a593SmuzhiyunCFLAGS += -maltivec 7*4882a593SmuzhiyunCFLAGS += -mcpu=power4 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun# Use our CFLAGS for the implicit .S rule & set the asm machine type 10*4882a593SmuzhiyunASFLAGS = $(CFLAGS) -Wa,-mpower4 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunTEST_GEN_PROGS := copyuser_64_t0 copyuser_64_t1 copyuser_64_t2 \ 13*4882a593Smuzhiyun copyuser_p7_t0 copyuser_p7_t1 \ 14*4882a593Smuzhiyun memcpy_64_t0 memcpy_64_t1 memcpy_64_t2 \ 15*4882a593Smuzhiyun memcpy_p7_t0 memcpy_p7_t1 copy_mc_64 \ 16*4882a593Smuzhiyun copyuser_64_exc_t0 copyuser_64_exc_t1 copyuser_64_exc_t2 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunEXTRA_SOURCES := validate.c ../harness.c stubs.S 19*4882a593Smuzhiyun 20*4882a593Smuzhiyuntop_srcdir = ../../../../.. 21*4882a593Smuzhiyuninclude ../../lib.mk 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun$(OUTPUT)/copyuser_64_t%: copyuser_64.S $(EXTRA_SOURCES) 24*4882a593Smuzhiyun $(CC) $(CPPFLAGS) $(CFLAGS) \ 25*4882a593Smuzhiyun -D COPY_LOOP=test___copy_tofrom_user_base \ 26*4882a593Smuzhiyun -D SELFTEST_CASE=$(subst copyuser_64_t,,$(notdir $@)) \ 27*4882a593Smuzhiyun -o $@ $^ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun$(OUTPUT)/copyuser_p7_t%: copyuser_power7.S $(EXTRA_SOURCES) 30*4882a593Smuzhiyun $(CC) $(CPPFLAGS) $(CFLAGS) \ 31*4882a593Smuzhiyun -D COPY_LOOP=test___copy_tofrom_user_power7 \ 32*4882a593Smuzhiyun -D SELFTEST_CASE=$(subst copyuser_p7_t,,$(notdir $@)) \ 33*4882a593Smuzhiyun -o $@ $^ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun# Strictly speaking, we only need the memcpy_64 test cases for big-endian 36*4882a593Smuzhiyun$(OUTPUT)/memcpy_64_t%: memcpy_64.S $(EXTRA_SOURCES) 37*4882a593Smuzhiyun $(CC) $(CPPFLAGS) $(CFLAGS) \ 38*4882a593Smuzhiyun -D COPY_LOOP=test_memcpy \ 39*4882a593Smuzhiyun -D SELFTEST_CASE=$(subst memcpy_64_t,,$(notdir $@)) \ 40*4882a593Smuzhiyun -o $@ $^ 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun$(OUTPUT)/memcpy_p7_t%: memcpy_power7.S $(EXTRA_SOURCES) 43*4882a593Smuzhiyun $(CC) $(CPPFLAGS) $(CFLAGS) \ 44*4882a593Smuzhiyun -D COPY_LOOP=test_memcpy_power7 \ 45*4882a593Smuzhiyun -D SELFTEST_CASE=$(subst memcpy_p7_t,,$(notdir $@)) \ 46*4882a593Smuzhiyun -o $@ $^ 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun$(OUTPUT)/copy_mc_64: copy_mc_64.S $(EXTRA_SOURCES) 49*4882a593Smuzhiyun $(CC) $(CPPFLAGS) $(CFLAGS) \ 50*4882a593Smuzhiyun -D COPY_LOOP=test_copy_mc_generic \ 51*4882a593Smuzhiyun -o $@ $^ 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun$(OUTPUT)/copyuser_64_exc_t%: copyuser_64.S exc_validate.c ../harness.c \ 54*4882a593Smuzhiyun copy_tofrom_user_reference.S stubs.S 55*4882a593Smuzhiyun $(CC) $(CPPFLAGS) $(CFLAGS) \ 56*4882a593Smuzhiyun -D COPY_LOOP=test___copy_tofrom_user_base \ 57*4882a593Smuzhiyun -D SELFTEST_CASE=$(subst copyuser_64_exc_t,,$(notdir $@)) \ 58*4882a593Smuzhiyun -o $@ $^ 59