| Index: src/opts/SkNx_neon.h
|
| diff --git a/src/opts/SkNx_neon.h b/src/opts/SkNx_neon.h
|
| index df11de3d5fb13d3240f3e47a327bcbe0528809c8..23567b7c2f18bbb0c804b226765794870b086dcf 100644
|
| --- a/src/opts/SkNx_neon.h
|
| +++ b/src/opts/SkNx_neon.h
|
| @@ -296,6 +296,8 @@ public:
|
| template <>
|
| class SkNx<4, uint8_t> {
|
| public:
|
| + typedef uint32_t __attribute__((aligned(1))) unaligned_uint32_t;
|
| +
|
| SkNx(const uint8x8_t& vec) : fVec(vec) {}
|
|
|
| SkNx() {}
|
| @@ -303,10 +305,10 @@ public:
|
| fVec = (uint8x8_t){a,b,c,d, 0,0,0,0};
|
| }
|
| static SkNx Load(const void* ptr) {
|
| - return (uint8x8_t)vld1_dup_u32((const uint32_t*)ptr);
|
| + return (uint8x8_t)vld1_dup_u32((const unaligned_uint32_t*)ptr);
|
| }
|
| void store(void* ptr) const {
|
| - return vst1_lane_u32((uint32_t*)ptr, (uint32x2_t)fVec, 0);
|
| + return vst1_lane_u32((unaligned_uint32_t*)ptr, (uint32x2_t)fVec, 0);
|
| }
|
| uint8_t operator[](int k) const {
|
| SkASSERT(0 <= k && k < 4);
|
|
|