From f4be52e288aeff28b503885d34074b87d7ce5bce Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Wed, 27 Feb 2013 22:53:45 -0800 Subject: FIX: memcpy_76(): add support for non-ARM architectures Before, memcpy_76() assumed ARM instruction set. Add preprocessor guards to use generic memcpy() if not on ARM. Original patch had args to memcpy_76 backwards. Change-Id: Ib5375e9de28ab6c2b348731dcdf282d6f7a529c1 --- src/core/SkPaint.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index a701ba5..d7d6cbd 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -150,7 +150,8 @@ SkPaint::SkPaint() { extern "C" { //Hard coded copy with size of 76 bytes. This will avoid the extra cost //of size checking branching in generic memcpy code - inline void memcpy_76(int* src, int* dst) { + inline void memcpy_76(int* src, const int* dst) { +#if defined(__CPU_ARCH_ARM) __asm__ volatile ("cpy r4, %1 \n" "cpy r5, %0 \n" "ldm r4!, {r0-r3} \n" @@ -167,8 +168,12 @@ extern "C" { : : "r" (src), "r" (dst) : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r12"); +#else + memcpy(dst, src, 76); +#endif } } + SkPaint::SkPaint(const SkPaint& src) { //Note: need to update this when SkPaint struture/size is changed! if(sizeof(src) == 76){ -- cgit v1.1