Showing the changes to codec/processing/src (1 of 2 files). Show all
Unified · Split
| @@ -36,19 +36,19 @@ · 35 unmodified lines | |||
| 36 | 36 | ||
| 37 | #ifdef __APPLE__ | 37 | #ifdef __APPLE__ |
| 38 | .macro ABS_SUB_SUM_16BYTES | 38 | .macro ABS_SUB_SUM_16BYTES |
| 39 | ld1 {v0.16b}, [x0], x4 | 39 | ld1 {v0.16b}, [x0], x4 |
| 40 | ld1 {v1.16b}, [x1], x4 | 40 | ld1 {v1.16b}, [x1], x4 |
| 41 | uabal $0, v0.8b, v1.8b | 41 | uabal $0, v0.8b, v1.8b |
| 42 | uabal2 $1, v0.16b,v1.16b | 42 | uabal2 $1, v0.16b,v1.16b |
| 43 | .endm | 43 | .endm |
| 44 | 44 | ||
| 45 | .macro ABS_SUB_SUM_8x16BYTES | 45 | .macro ABS_SUB_SUM_8x16BYTES |
| 46 | ld1 {v0.16b}, [x0], x4 | 46 | ld1 {v0.16b}, [x0], x4 |
| 47 | ld1 {v1.16b}, [x1], x4 | 47 | ld1 {v1.16b}, [x1], x4 |
| 48 | uabdl $0, v0.8b, v1.8b | 48 | uabdl $0, v0.8b, v1.8b |
| 49 | uabdl2 $1, v0.16b,v1.16b | 49 | uabdl2 $1, v0.16b,v1.16b |
| 50 | 50 | ||
| 51 | ABS_SUB_SUM_16BYTES $0, $1 | 51 | ABS_SUB_SUM_16BYTES $0, $1 |
| 52 | ABS_SUB_SUM_16BYTES $0, $1 | 52 | ABS_SUB_SUM_16BYTES $0, $1 |
| 53 | ABS_SUB_SUM_16BYTES $0, $1 | 53 | ABS_SUB_SUM_16BYTES $0, $1 |
| 54 | ABS_SUB_SUM_16BYTES $0, $1 | 54 | ABS_SUB_SUM_16BYTES $0, $1 |
| @@ -58,19 +58,19 @@ · 3 unmodified lines | |||
| 58 | .endm | 58 | .endm |
| 59 | #else | 59 | #else |
| 60 | .macro ABS_SUB_SUM_16BYTES arg0, arg1 | 60 | .macro ABS_SUB_SUM_16BYTES arg0, arg1 |
| 61 | ld1 {v0.16b}, [x0], x4 | 61 | ld1 {v0.16b}, [x0], x4 |
| 62 | ld1 {v1.16b}, [x1], x4 | 62 | ld1 {v1.16b}, [x1], x4 |
| 63 | uabal \arg0, v0.8b, v1.8b | 63 | uabal \arg0, v0.8b, v1.8b |
| 64 | uabal2 \arg1, v0.16b,v1.16b | 64 | uabal2 \arg1, v0.16b,v1.16b |
| 65 | .endm | 65 | .endm |
| 66 | 66 | ||
| 67 | .macro ABS_SUB_SUM_8x16BYTES arg0, arg1 | 67 | .macro ABS_SUB_SUM_8x16BYTES arg0, arg1 |
| 68 | ld1 {v0.16b}, [x0], x4 | 68 | ld1 {v0.16b}, [x0], x4 |
| 69 | ld1 {v1.16b}, [x1], x4 | 69 | ld1 {v1.16b}, [x1], x4 |
| 70 | uabdl \arg0, v0.8b, v1.8b | 70 | uabdl \arg0, v0.8b, v1.8b |
| 71 | uabdl2 \arg1, v0.16b,v1.16b | 71 | uabdl2 \arg1, v0.16b,v1.16b |
| 72 | 72 | ||
| 73 | ABS_SUB_SUM_16BYTES \arg0, \arg1 | 73 | ABS_SUB_SUM_16BYTES \arg0, \arg1 |
| 74 | ABS_SUB_SUM_16BYTES \arg0, \arg1 | 74 | ABS_SUB_SUM_16BYTES \arg0, \arg1 |
| 75 | ABS_SUB_SUM_16BYTES \arg0, \arg1 | 75 | ABS_SUB_SUM_16BYTES \arg0, \arg1 |
| 76 | ABS_SUB_SUM_16BYTES \arg0, \arg1 | 76 | ABS_SUB_SUM_16BYTES \arg0, \arg1 |
| @@ -82,7 +82,7 @@ · 5 unmodified lines | |||
| 82 | 82 | ||
| 83 | /* | 83 | /* |
| 84 | * void vaa_calc_sad_neon(uint8_t *cur_data, uint8_t *ref_data, int32_t pic_width, int32_t pic_height, int32_t pic_stride, | 84 | * void vaa_calc_sad_neon(uint8_t *cur_data, uint8_t *ref_data, int32_t pic_width, int32_t pic_height, int32_t pic_stride, |
| 85 | * int32_t *psadframe, int32_t *psad8x8) | 85 | * int32_t *psadframe, int32_t *psad8x8) |
| 86 | */ | 86 | */ |
| 87 | WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSad_AArch64_neon | 87 | WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSad_AArch64_neon |
| 88 | eor v31.16b, v31.16b, v31.16b | 88 | eor v31.16b, v31.16b, v31.16b |
| @@ -121,14 +121,14 @@ WELS_ASM_AARCH64_FUNC_END · 32 unmodified lines | |||
| 121 | 121 | ||
| 122 | .macro SAD_SD_MAD_8x16BYTES | 122 | .macro SAD_SD_MAD_8x16BYTES |
| 123 | ld1 {v0.16b}, [x0], x4 | 123 | ld1 {v0.16b}, [x0], x4 |
| 124 | ld1 {v1.16b}, [x1], x4 | 124 | ld1 {v1.16b}, [x1], x4 |
| 125 | uabd v31.16b, v0.16b, v1.16b | 125 | uabd v31.16b, v0.16b, v1.16b |
| 126 | uaddlp v2.8h, v31.16b | 126 | uaddlp v2.8h, v31.16b |
| 127 | uaddlp v4.8h, v0.16b | 127 | uaddlp v4.8h, v0.16b |
| 128 | uaddlp v5.8h, v1.16b | 128 | uaddlp v5.8h, v1.16b |
| 129 | .rept 7 | 129 | .rept 7 |
| 130 | ld1 {v0.16b}, [x0], x4 | 130 | ld1 {v0.16b}, [x0], x4 |
| 131 | ld1 {v1.16b}, [x1], x4 | 131 | ld1 {v1.16b}, [x1], x4 |
| 132 | uabd v30.16b, v0.16b, v1.16b | 132 | uabd v30.16b, v0.16b, v1.16b |
| 133 | umax v31.16b, v31.16b,v30.16b | 133 | umax v31.16b, v31.16b,v30.16b |
| 134 | uadalp v2.8h, v30.16b | 134 | uadalp v2.8h, v30.16b |
| @@ -138,7 +138,7 @@ WELS_ASM_AARCH64_FUNC_END · 3 unmodified lines | |||
| 138 | .endm | 138 | .endm |
| 139 | /* | 139 | /* |
| 140 | * void vaa_calc_sad_bgd_neon(uint8_t *cur_data, uint8_t *ref_data, int32_t pic_width, int32_t pic_height, int32_t pic_stride, | 140 | * void vaa_calc_sad_bgd_neon(uint8_t *cur_data, uint8_t *ref_data, int32_t pic_width, int32_t pic_height, int32_t pic_stride, |
| 141 | * int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8) | 141 | * int32_t *psadframe, int32_t *psad8x8, int32_t *p_sd8x8, uint8_t *p_mad8x8) |
| 142 | */ | 142 | */ |
| 143 | WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadBgd_AArch64_neon | 143 | WELS_ASM_AARCH64_FUNC_BEGIN VAACalcSadBgd_AArch64_neon |
| 144 | ldr x15, [sp, #0] | 144 | ldr x15, [sp, #0] |
| @@ -196,7 +196,7 @@ WELS_ASM_AARCH64_FUNC_END · 51 unmodified lines | |||
| 196 | 196 | ||
| 197 | .macro SAD_SSD_BGD_8x16BYTES_1 | 197 | .macro SAD_SSD_BGD_8x16BYTES_1 |
| 198 | ld1 {v0.16b}, [x0], x4 | 198 | ld1 {v0.16b}, [x0], x4 |
| 199 | ld1 {v1.16b}, [x1], x4 | 199 | ld1 {v1.16b}, [x1], x4 |
| 200 | uabd v31.16b, v0.16b, v1.16b | 200 | uabd v31.16b, v0.16b, v1.16b |
| 201 | umull v30.8h, v31.8b, v31.8b | 201 | umull v30.8h, v31.8b, v31.8b |
| 202 | uaddlp v29.4s, v30.8h | 202 | uaddlp v29.4s, v30.8h |
| @@ -214,7 +214,7 @@ WELS_ASM_AARCH64_FUNC_END · 11 unmodified lines | |||
| 214 | uaddlp v5.8h, v1.16b | 214 | uaddlp v5.8h, v1.16b |
| 215 | .rept 7 | 215 | .rept 7 |
| 216 | ld1 {v0.16b}, [x0], x4 | 216 | ld1 {v0.16b}, [x0], x4 |
| 217 | ld1 {v1.16b}, [x1], x4 | 217 | ld1 {v1.16b}, [x1], x4 |
| 218 | uabd v3.16b, v0.16b, v1.16b | 218 | uabd v3.16b, v0.16b, v1.16b |
| 219 | umax v31.16b, v31.16b,v3.16b //p_mad | 219 | umax v31.16b, v31.16b,v3.16b //p_mad |
| 220 | umull v30.8h, v3.8b, v3.8b | 220 | umull v30.8h, v3.8b, v3.8b |
| @@ -236,7 +236,7 @@ WELS_ASM_AARCH64_FUNC_END · 15 unmodified lines | |||
| 236 | 236 | ||
| 237 | .macro SAD_SSD_BGD_8x16BYTES_2 | 237 | .macro SAD_SSD_BGD_8x16BYTES_2 |
| 238 | ld1 {v0.16b}, [x0], x4 | 238 | ld1 {v0.16b}, [x0], x4 |
| 239 | ld1 {v1.16b}, [x1], x4 | 239 | ld1 {v1.16b}, [x1], x4 |
| 240 | uabd v26.16b, v0.16b, v1.16b | 240 | uabd v26.16b, v0.16b, v1.16b |
| 241 | umull v30.8h, v26.8b, v26.8b | 241 | umull v30.8h, v26.8b, v26.8b |
| 242 | uadalp v29.4s, v30.8h | 242 | uadalp v29.4s, v30.8h |
| @@ -254,7 +254,7 @@ WELS_ASM_AARCH64_FUNC_END · 11 unmodified lines | |||
| 254 | uaddlp v7.8h, v1.16b | 254 | uaddlp v7.8h, v1.16b |
| 255 | .rept 7 | 255 | .rept 7 |
| 256 | ld1 {v0.16b}, [x0], x4 | 256 | ld1 {v0.16b}, [x0], x4 |
| 257 | ld1 {v1.16b}, [x1], x4 | 257 | ld1 {v1.16b}, [x1], x4 |
| 258 | uabd v3.16b, v0.16b, v1.16b | 258 | uabd v3.16b, v0.16b, v1.16b |
| 259 | umax v26.16b, v26.16b,v3.16b //p_mad | 259 | umax v26.16b, v26.16b,v3.16b //p_mad |
| 260 | umull v30.8h, v3.8b, v3.8b | 260 | umull v30.8h, v3.8b, v3.8b |
| @@ -347,7 +347,7 @@ WELS_ASM_AARCH64_FUNC_END · 86 unmodified lines | |||
| 347 | 347 | ||
| 348 | .macro SAD_SSD_8x16BYTES_1 | 348 | .macro SAD_SSD_8x16BYTES_1 |
| 349 | ld1 {v0.16b}, [x0], x4 | 349 | ld1 {v0.16b}, [x0], x4 |
| 350 | ld1 {v1.16b}, [x1], x4 | 350 | ld1 {v1.16b}, [x1], x4 |
| 351 | uabd v31.16b, v0.16b, v1.16b | 351 | uabd v31.16b, v0.16b, v1.16b |
| 352 | umull v30.8h, v31.8b, v31.8b | 352 | umull v30.8h, v31.8b, v31.8b |
| 353 | uaddlp v29.4s, v30.8h | 353 | uaddlp v29.4s, v30.8h |
| @@ -363,7 +363,7 @@ WELS_ASM_AARCH64_FUNC_END · 9 unmodified lines | |||
| 363 | uaddlp v2.8h, v31.16b // p_sad | 363 | uaddlp v2.8h, v31.16b // p_sad |
| 364 | .rept 7 | 364 | .rept 7 |
| 365 | ld1 {v0.16b}, [x0], x4 | 365 | ld1 {v0.16b}, [x0], x4 |
| 366 | ld1 {v1.16b}, [x1], x4 | 366 | ld1 {v1.16b}, [x1], x4 |
| 367 | uabd v3.16b, v0.16b, v1.16b | 367 | uabd v3.16b, v0.16b, v1.16b |
| 368 | umull v30.8h, v3.8b, v3.8b | 368 | umull v30.8h, v3.8b, v3.8b |
| 369 | uadalp v29.4s, v30.8h | 369 | uadalp v29.4s, v30.8h |
| @@ -382,7 +382,7 @@ WELS_ASM_AARCH64_FUNC_END · 12 unmodified lines | |||
| 382 | 382 | ||
| 383 | .macro SAD_SSD_8x16BYTES_2 | 383 | .macro SAD_SSD_8x16BYTES_2 |
| 384 | ld1 {v0.16b}, [x0], x4 | 384 | ld1 {v0.16b}, [x0], x4 |
| 385 | ld1 {v1.16b}, [x1], x4 | 385 | ld1 {v1.16b}, [x1], x4 |
| 386 | uabd v26.16b, v0.16b, v1.16b | 386 | uabd v26.16b, v0.16b, v1.16b |
| 387 | umull v30.8h, v26.8b, v26.8b | 387 | umull v30.8h, v26.8b, v26.8b |
| 388 | uadalp v29.4s, v30.8h | 388 | uadalp v29.4s, v30.8h |
| @@ -400,7 +400,7 @@ WELS_ASM_AARCH64_FUNC_END · 11 unmodified lines | |||
| 400 | uaddlp v7.8h, v1.16b | 400 | uaddlp v7.8h, v1.16b |
| 401 | .rept 7 | 401 | .rept 7 |
| 402 | ld1 {v0.16b}, [x0], x4 | 402 | ld1 {v0.16b}, [x0], x4 |
| 403 | ld1 {v1.16b}, [x1], x4 | 403 | ld1 {v1.16b}, [x1], x4 |
| 404 | uabd v3.16b, v0.16b, v1.16b | 404 | uabd v3.16b, v0.16b, v1.16b |
| 405 | umull v30.8h, v3.8b, v3.8b | 405 | umull v30.8h, v3.8b, v3.8b |
| 406 | uadalp v29.4s, v30.8h | 406 | uadalp v29.4s, v30.8h |
| @@ -469,7 +469,7 @@ WELS_ASM_AARCH64_FUNC_END · 62 unmodified lines | |||
| 469 | 469 | ||
| 470 | .macro SAD_VAR_8x16BYTES_1 | 470 | .macro SAD_VAR_8x16BYTES_1 |
| 471 | ld1 {v0.16b}, [x0], x4 | 471 | ld1 {v0.16b}, [x0], x4 |
| 472 | ld1 {v1.16b}, [x1], x4 | 472 | ld1 {v1.16b}, [x1], x4 |
| 473 | uabd v31.16b, v0.16b, v1.16b | 473 | uabd v31.16b, v0.16b, v1.16b |
| 474 | uaddlp v2.8h, v31.16b // p_sad | 474 | uaddlp v2.8h, v31.16b // p_sad |
| 475 | 475 | ||
| @@ -481,7 +481,7 @@ WELS_ASM_AARCH64_FUNC_END · 5 unmodified lines | |||
| 481 | 481 | ||
| 482 | .rept 7 | 482 | .rept 7 |
| 483 | ld1 {v0.16b}, [x0], x4 | 483 | ld1 {v0.16b}, [x0], x4 |
| 484 | ld1 {v1.16b}, [x1], x4 | 484 | ld1 {v1.16b}, [x1], x4 |
| 485 | uabd v3.16b, v0.16b, v1.16b | 485 | uabd v3.16b, v0.16b, v1.16b |
| 486 | uadalp v2.8h, v3.16b //p_sad | 486 | uadalp v2.8h, v3.16b //p_sad |
| 487 | 487 | ||
| @@ -494,7 +494,7 @@ WELS_ASM_AARCH64_FUNC_END · 6 unmodified lines | |||
| 494 | .endm | 494 | .endm |
| 495 | .macro SAD_VAR_8x16BYTES_2 | 495 | .macro SAD_VAR_8x16BYTES_2 |
| 496 | ld1 {v0.16b}, [x0], x4 | 496 | ld1 {v0.16b}, [x0], x4 |
| 497 | ld1 {v1.16b}, [x1], x4 | 497 | ld1 {v1.16b}, [x1], x4 |
| 498 | uabd v26.16b, v0.16b, v1.16b | 498 | uabd v26.16b, v0.16b, v1.16b |
| 499 | uaddlp v16.8h,v26.16b // p_sad | 499 | uaddlp v16.8h,v26.16b // p_sad |
| 500 | 500 | ||
| @@ -505,7 +505,7 @@ WELS_ASM_AARCH64_FUNC_END · 4 unmodified lines | |||
| 505 | uadalp v27.4s, v30.8h // p_sqsum | 505 | uadalp v27.4s, v30.8h // p_sqsum |
| 506 | .rept 7 | 506 | .rept 7 |
| 507 | ld1 {v0.16b}, [x0], x4 | 507 | ld1 {v0.16b}, [x0], x4 |
| 508 | ld1 {v1.16b}, [x1], x4 | 508 | ld1 {v1.16b}, [x1], x4 |
| 509 | uabd v3.16b, v0.16b, v1.16b | 509 | uabd v3.16b, v0.16b, v1.16b |
| 510 | uadalp v16.8h, v3.16b //p_sad | 510 | uadalp v16.8h, v3.16b //p_sad |
| 511 | 511 | ||