diff options
Diffstat (limited to 'powerpc/copyloops')
-rw-r--r-- | powerpc/copyloops/Makefile | 29 | ||||
-rw-r--r-- | powerpc/copyloops/asm/ppc_asm.h | 89 | ||||
-rw-r--r-- | powerpc/copyloops/asm/processor.h | 0 | ||||
l--------- | powerpc/copyloops/copyuser_64.S | 1 | ||||
l--------- | powerpc/copyloops/copyuser_power7.S | 1 | ||||
l--------- | powerpc/copyloops/memcpy_64.S | 1 | ||||
l--------- | powerpc/copyloops/memcpy_power7.S | 1 | ||||
-rw-r--r-- | powerpc/copyloops/validate.c | 99 |
8 files changed, 0 insertions, 221 deletions
diff --git a/powerpc/copyloops/Makefile b/powerpc/copyloops/Makefile deleted file mode 100644 index 6f2d3be..0000000 --- a/powerpc/copyloops/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# The loops are all 64-bit code -CFLAGS += -m64 -CFLAGS += -I$(CURDIR) -CFLAGS += -D SELFTEST - -# Use our CFLAGS for the implicit .S rule -ASFLAGS = $(CFLAGS) - -PROGS := copyuser_64 copyuser_power7 memcpy_64 memcpy_power7 -EXTRA_SOURCES := validate.c ../harness.c - -all: $(PROGS) - -copyuser_64: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_base -copyuser_power7: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_power7 -memcpy_64: CPPFLAGS += -D COPY_LOOP=test_memcpy -memcpy_power7: CPPFLAGS += -D COPY_LOOP=test_memcpy_power7 - -$(PROGS): $(EXTRA_SOURCES) - -run_tests: all - @-for PROG in $(PROGS); do \ - ./$$PROG; \ - done; - -clean: - rm -f $(PROGS) *.o - -.PHONY: all run_tests clean diff --git a/powerpc/copyloops/asm/ppc_asm.h b/powerpc/copyloops/asm/ppc_asm.h deleted file mode 100644 index d1dc374..0000000 --- a/powerpc/copyloops/asm/ppc_asm.h +++ /dev/null @@ -1,89 +0,0 @@ -#include <ppc-asm.h> - -#define CONFIG_ALTIVEC - -#define r1 1 - -#define vr0 0 -#define vr1 1 -#define vr2 2 -#define vr3 3 -#define vr4 4 -#define vr5 5 -#define vr6 6 -#define vr7 7 -#define vr8 8 -#define vr9 9 -#define vr10 10 -#define vr11 11 -#define vr12 12 -#define vr13 13 -#define vr14 14 -#define vr15 15 -#define vr16 16 -#define vr17 17 -#define vr18 18 -#define vr19 19 -#define vr20 20 -#define vr21 21 -#define vr22 22 -#define vr23 23 -#define vr24 24 -#define vr25 25 -#define vr26 26 -#define vr27 27 -#define vr28 28 -#define vr29 29 -#define vr30 30 -#define vr31 31 - -#define R14 r14 -#define R15 r15 -#define R16 r16 -#define R17 r17 -#define R18 r18 -#define R19 r19 -#define R20 r20 -#define R21 r21 -#define R22 r22 -#define R29 r29 -#define R30 r30 -#define R31 r31 - -#define STACKFRAMESIZE 256 -#define STK_REG(i) (112 + ((i)-14)*8) - -#define _GLOBAL(A) FUNC_START(test_ ## A) -#define _GLOBAL_TOC(A) _GLOBAL(A) - -#define PPC_MTOCRF(A, B) mtocrf A, B - -FUNC_START(enter_vmx_usercopy) - li r3,1 - blr - -FUNC_START(exit_vmx_usercopy) - li r3,0 - blr - -FUNC_START(enter_vmx_copy) - li r3,1 - blr - -FUNC_START(exit_vmx_copy) - blr - -FUNC_START(memcpy_power7) - blr - -FUNC_START(__copy_tofrom_user_power7) - blr - -FUNC_START(__copy_tofrom_user_base) - blr - -#define BEGIN_FTR_SECTION -#define FTR_SECTION_ELSE -#define ALT_FTR_SECTION_END_IFCLR(x) -#define ALT_FTR_SECTION_END(x, y) -#define END_FTR_SECTION_IFCLR(x) diff --git a/powerpc/copyloops/asm/processor.h b/powerpc/copyloops/asm/processor.h deleted file mode 100644 index e69de29..0000000 --- a/powerpc/copyloops/asm/processor.h +++ /dev/null diff --git a/powerpc/copyloops/copyuser_64.S b/powerpc/copyloops/copyuser_64.S deleted file mode 120000 index f1c418a..0000000 --- a/powerpc/copyloops/copyuser_64.S +++ /dev/null @@ -1 +0,0 @@ -../../../../../arch/powerpc/lib/copyuser_64.S
\ No newline at end of file diff --git a/powerpc/copyloops/copyuser_power7.S b/powerpc/copyloops/copyuser_power7.S deleted file mode 120000 index 4786895..0000000 --- a/powerpc/copyloops/copyuser_power7.S +++ /dev/null @@ -1 +0,0 @@ -../../../../../arch/powerpc/lib/copyuser_power7.S
\ No newline at end of file diff --git a/powerpc/copyloops/memcpy_64.S b/powerpc/copyloops/memcpy_64.S deleted file mode 120000 index cce33fb..0000000 --- a/powerpc/copyloops/memcpy_64.S +++ /dev/null @@ -1 +0,0 @@ -../../../../../arch/powerpc/lib/memcpy_64.S
\ No newline at end of file diff --git a/powerpc/copyloops/memcpy_power7.S b/powerpc/copyloops/memcpy_power7.S deleted file mode 120000 index 0d6fbfa..0000000 --- a/powerpc/copyloops/memcpy_power7.S +++ /dev/null @@ -1 +0,0 @@ -../../../../../arch/powerpc/lib/memcpy_power7.S
\ No newline at end of file diff --git a/powerpc/copyloops/validate.c b/powerpc/copyloops/validate.c deleted file mode 100644 index 1750ff5..0000000 --- a/powerpc/copyloops/validate.c +++ /dev/null @@ -1,99 +0,0 @@ -#include <malloc.h> -#include <string.h> -#include <stdlib.h> -#include <stdbool.h> - -#include "../utils.h" - -#define MAX_LEN 8192 -#define MAX_OFFSET 16 -#define MIN_REDZONE 128 -#define BUFLEN (MAX_LEN+MAX_OFFSET+2*MIN_REDZONE) -#define POISON 0xa5 - -unsigned long COPY_LOOP(void *to, const void *from, unsigned long size); - -static void do_one(char *src, char *dst, unsigned long src_off, - unsigned long dst_off, unsigned long len, void *redzone, - void *fill) -{ - char *srcp, *dstp; - unsigned long ret; - unsigned long i; - - srcp = src + MIN_REDZONE + src_off; - dstp = dst + MIN_REDZONE + dst_off; - - memset(src, POISON, BUFLEN); - memset(dst, POISON, BUFLEN); - memcpy(srcp, fill, len); - - ret = COPY_LOOP(dstp, srcp, len); - if (ret && ret != (unsigned long)dstp) { - printf("(%p,%p,%ld) returned %ld\n", dstp, srcp, len, ret); - abort(); - } - - if (memcmp(dstp, srcp, len)) { - printf("(%p,%p,%ld) miscompare\n", dstp, srcp, len); - printf("src: "); - for (i = 0; i < len; i++) - printf("%02x ", srcp[i]); - printf("\ndst: "); - for (i = 0; i < len; i++) - printf("%02x ", dstp[i]); - printf("\n"); - abort(); - } - - if (memcmp(dst, redzone, dstp - dst)) { - printf("(%p,%p,%ld) redzone before corrupted\n", - dstp, srcp, len); - abort(); - } - - if (memcmp(dstp+len, redzone, dst+BUFLEN-(dstp+len))) { - printf("(%p,%p,%ld) redzone after corrupted\n", - dstp, srcp, len); - abort(); - } -} - -int test_copy_loop(void) -{ - char *src, *dst, *redzone, *fill; - unsigned long len, src_off, dst_off; - unsigned long i; - - src = memalign(BUFLEN, BUFLEN); - dst = memalign(BUFLEN, BUFLEN); - redzone = malloc(BUFLEN); - fill = malloc(BUFLEN); - - if (!src || !dst || !redzone || !fill) { - fprintf(stderr, "malloc failed\n"); - exit(1); - } - - memset(redzone, POISON, BUFLEN); - - /* Fill with sequential bytes */ - for (i = 0; i < BUFLEN; i++) - fill[i] = i & 0xff; - - for (len = 1; len < MAX_LEN; len++) { - for (src_off = 0; src_off < MAX_OFFSET; src_off++) { - for (dst_off = 0; dst_off < MAX_OFFSET; dst_off++) { - do_one(src, dst, src_off, dst_off, len, - redzone, fill); - } - } - } - - return 0; -} - -int main(void) -{ - return test_harness(test_copy_loop, str(COPY_LOOP)); -} |