diff options
author | Richard Hansen <cyanogenmod@rhansen.org> | 2013-02-19 13:26:53 -0500 |
---|---|---|
committer | Richard Hansen <cyanogenmod@rhansen.org> | 2013-02-21 16:04:18 -0500 |
commit | ad673c1cb9dd151fd4e74380c4ba82c1fefb580b (patch) | |
tree | 4437b6c1ed352d51382f4938c8ddcfb4a0a8c8a5 | |
parent | cb5701ecfa08563037c24cc7b8ed4bb2629ef70b (diff) | |
download | external_skia-ad673c1cb9dd151fd4e74380c4ba82c1fefb580b.zip external_skia-ad673c1cb9dd151fd4e74380c4ba82c1fefb580b.tar.gz external_skia-ad673c1cb9dd151fd4e74380c4ba82c1fefb580b.tar.bz2 |
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.
Change-Id: Id4d7335332f4086fa33641630f41810b2fe07031
-rw-r--r-- | src/core/SkPaint.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index a701ba5..d45bdba 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* dst, const int* src) { +#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){ |