162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# The loops are all 64-bit code 362306a36Sopenharmony_ciCFLAGS += -m64 462306a36Sopenharmony_ciCFLAGS += -I$(CURDIR) 562306a36Sopenharmony_ciCFLAGS += -D SELFTEST 662306a36Sopenharmony_ciCFLAGS += -maltivec 762306a36Sopenharmony_ciCFLAGS += -mcpu=power4 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci# Use our CFLAGS for the implicit .S rule & set the asm machine type 1062306a36Sopenharmony_ciASFLAGS = $(CFLAGS) -Wa,-mpower4 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciTEST_GEN_PROGS := copyuser_64_t0 copyuser_64_t1 copyuser_64_t2 \ 1362306a36Sopenharmony_ci copyuser_p7_t0 copyuser_p7_t1 \ 1462306a36Sopenharmony_ci memcpy_64_t0 memcpy_64_t1 memcpy_64_t2 \ 1562306a36Sopenharmony_ci memcpy_p7_t0 memcpy_p7_t1 copy_mc_64 \ 1662306a36Sopenharmony_ci copyuser_64_exc_t0 copyuser_64_exc_t1 copyuser_64_exc_t2 \ 1762306a36Sopenharmony_ci memmove_64 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciEXTRA_SOURCES := validate.c ../harness.c stubs.S 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_citop_srcdir = ../../../../.. 2262306a36Sopenharmony_ciinclude ../../lib.mk 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci$(OUTPUT)/copyuser_64_t%: copyuser_64.S $(EXTRA_SOURCES) 2562306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 2662306a36Sopenharmony_ci -D COPY_LOOP=test___copy_tofrom_user_base \ 2762306a36Sopenharmony_ci -D SELFTEST_CASE=$(subst copyuser_64_t,,$(notdir $@)) \ 2862306a36Sopenharmony_ci -o $@ $^ 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci$(OUTPUT)/copyuser_p7_t%: copyuser_power7.S $(EXTRA_SOURCES) 3162306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 3262306a36Sopenharmony_ci -D COPY_LOOP=test___copy_tofrom_user_power7 \ 3362306a36Sopenharmony_ci -D SELFTEST_CASE=$(subst copyuser_p7_t,,$(notdir $@)) \ 3462306a36Sopenharmony_ci -o $@ $^ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci# Strictly speaking, we only need the memcpy_64 test cases for big-endian 3762306a36Sopenharmony_ci$(OUTPUT)/memcpy_64_t%: memcpy_64.S $(EXTRA_SOURCES) 3862306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 3962306a36Sopenharmony_ci -D COPY_LOOP=test_memcpy \ 4062306a36Sopenharmony_ci -D SELFTEST_CASE=$(subst memcpy_64_t,,$(notdir $@)) \ 4162306a36Sopenharmony_ci -o $@ $^ 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci$(OUTPUT)/memcpy_p7_t%: memcpy_power7.S $(EXTRA_SOURCES) 4462306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 4562306a36Sopenharmony_ci -D COPY_LOOP=test_memcpy_power7 \ 4662306a36Sopenharmony_ci -D SELFTEST_CASE=$(subst memcpy_p7_t,,$(notdir $@)) \ 4762306a36Sopenharmony_ci -o $@ $^ 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci$(OUTPUT)/copy_mc_64: copy_mc_64.S $(EXTRA_SOURCES) 5062306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 5162306a36Sopenharmony_ci -D COPY_LOOP=test_copy_mc_generic \ 5262306a36Sopenharmony_ci -o $@ $^ 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci$(OUTPUT)/copyuser_64_exc_t%: copyuser_64.S exc_validate.c ../harness.c \ 5562306a36Sopenharmony_ci copy_tofrom_user_reference.S stubs.S 5662306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 5762306a36Sopenharmony_ci -D COPY_LOOP=test___copy_tofrom_user_base \ 5862306a36Sopenharmony_ci -D SELFTEST_CASE=$(subst copyuser_64_exc_t,,$(notdir $@)) \ 5962306a36Sopenharmony_ci -o $@ $^ 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci$(OUTPUT)/memmove_64: mem_64.S memcpy_64.S memmove_validate.c ../harness.c \ 6262306a36Sopenharmony_ci memcpy_stubs.S 6362306a36Sopenharmony_ci $(CC) $(CPPFLAGS) $(CFLAGS) \ 6462306a36Sopenharmony_ci -D TEST_MEMMOVE=test_memmove \ 6562306a36Sopenharmony_ci -o $@ $^ 66