There's a different version of the same function in the encoder, but they're not identical - the encoder version has got stricter alignment requirements. If someone can confirm that it is ok to use the function from the encoder, pixel_sad_neon.S in processing could be deleted, and the encoder version moved to codec/common instead.
Showing the changes to codec/processing/src (3 of 3 files). Show all
Unified · Split
| @@ -35,7 +35,7 @@ · 34 unmodified lines | |||
| 35 | #include "arm_arch_common_macro.S" | 35 | #include "arm_arch_common_macro.S" |
| 36 | 36 | ||
| 37 | 37 | ||
| 38 | WELS_ASM_FUNC_BEGIN WelsSampleSad8x8_neon | 38 | WELS_ASM_FUNC_BEGIN WelsProcessingSampleSad8x8_neon |
| 39 | stmdb sp!, {lr} | 39 | stmdb sp!, {lr} |
| 40 | //Loading a horizontal line data (8 bytes) | 40 | //Loading a horizontal line data (8 bytes) |
| 41 | vld1.8 {d0}, [r0], r1 | 41 | vld1.8 {d0}, [r0], r1 |
| @@ -133,7 +133,7 @@ void CSceneChangeDetection::InitSadFuncs (SadFuncPtr& pfSad, int32_t iCpuFlag) · 132 unmodified lines | |||
| 133 | 133 | ||
| 134 | #ifdef HAVE_NEON | 134 | #ifdef HAVE_NEON |
| 135 | if (iCpuFlag & WELS_CPU_NEON) { | 135 | if (iCpuFlag & WELS_CPU_NEON) { |
| 136 | pfSad = WelsSampleSad8x8_neon; | 136 | pfSad = WelsProcessingSampleSad8x8_neon; |
| 137 | } | 137 | } |
| 138 | #endif | 138 | #endif |
| 139 | } | 139 | } |
| @@ -62,7 +62,7 @@ WELSVP_EXTERN_C_END · 61 unmodified lines | |||
| 62 | 62 | ||
| 63 | #ifdef HAVE_NEON | 63 | #ifdef HAVE_NEON |
| 64 | WELSVP_EXTERN_C_BEGIN | 64 | WELSVP_EXTERN_C_BEGIN |
| 65 | SadFunc WelsSampleSad8x8_neon; | 65 | SadFunc WelsProcessingSampleSad8x8_neon; |
| 66 | WELSVP_EXTERN_C_END | 66 | WELSVP_EXTERN_C_END |
| 67 | #endif | 67 | #endif |
| 68 | 68 | ||