| OLD | NEW |
| 1 ; | 1 ; |
| 2 ; Copyright (c) 2014 The WebM project authors. All Rights Reserved. | 2 ; Copyright (c) 2014 The WebM project authors. All Rights Reserved. |
| 3 ; | 3 ; |
| 4 ; Use of this source code is governed by a BSD-style license | 4 ; Use of this source code is governed by a BSD-style license |
| 5 ; that can be found in the LICENSE file in the root of the source | 5 ; that can be found in the LICENSE file in the root of the source |
| 6 ; tree. An additional intellectual property rights grant can be found | 6 ; tree. An additional intellectual property rights grant can be found |
| 7 ; in the file PATENTS. All contributing project authors may | 7 ; in the file PATENTS. All contributing project authors may |
| 8 ; be found in the AUTHORS file in the root of the source tree. | 8 ; be found in the AUTHORS file in the root of the source tree. |
| 9 ; | 9 ; |
| 10 | 10 |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 ; const uint8_t *above, | 291 ; const uint8_t *above, |
| 292 ; const uint8_t *left) | 292 ; const uint8_t *left) |
| 293 ; r0 uint8_t *dst | 293 ; r0 uint8_t *dst |
| 294 ; r1 ptrdiff_t y_stride | 294 ; r1 ptrdiff_t y_stride |
| 295 ; r2 const uint8_t *above | 295 ; r2 const uint8_t *above |
| 296 ; r3 const uint8_t *left | 296 ; r3 const uint8_t *left |
| 297 | 297 |
| 298 |vp9_tm_predictor_4x4_neon| PROC | 298 |vp9_tm_predictor_4x4_neon| PROC |
| 299 ; Load ytop_left = above[-1]; | 299 ; Load ytop_left = above[-1]; |
| 300 sub r12, r2, #1 | 300 sub r12, r2, #1 |
| 301 ldrb r12, [r12] | 301 vld1.u8 {d0[]}, [r12] |
| 302 vdup.u8 d0, r12 | |
| 303 | 302 |
| 304 ; Load above 4 pixels | 303 ; Load above 4 pixels |
| 305 vld1.32 {d2[0]}, [r2] | 304 vld1.32 {d2[0]}, [r2] |
| 306 | 305 |
| 307 ; Compute above - ytop_left | 306 ; Compute above - ytop_left |
| 308 vsubl.u8 q3, d2, d0 | 307 vsubl.u8 q3, d2, d0 |
| 309 | 308 |
| 310 ; Load left row by row and compute left + (above - ytop_left) | 309 ; Load left row by row and compute left + (above - ytop_left) |
| 311 ; 1st row and 2nd row | 310 ; 1st row and 2nd row |
| 312 ldrb r12, [r3], #1 | 311 vld1.u8 {d2[]}, [r3]! |
| 313 ldrb r2, [r3], #1 | 312 vld1.u8 {d4[]}, [r3]! |
| 314 vdup.u16 q1, r12 | 313 vmovl.u8 q1, d2 |
| 315 vdup.u16 q2, r2 | 314 vmovl.u8 q2, d4 |
| 316 vadd.s16 q1, q1, q3 | 315 vadd.s16 q1, q1, q3 |
| 317 vadd.s16 q2, q2, q3 | 316 vadd.s16 q2, q2, q3 |
| 318 vqmovun.s16 d0, q1 | 317 vqmovun.s16 d0, q1 |
| 319 vqmovun.s16 d1, q2 | 318 vqmovun.s16 d1, q2 |
| 320 vst1.32 {d0[0]}, [r0], r1 | 319 vst1.32 {d0[0]}, [r0], r1 |
| 321 vst1.32 {d1[0]}, [r0], r1 | 320 vst1.32 {d1[0]}, [r0], r1 |
| 322 | 321 |
| 323 ; 3rd row and 4th row | 322 ; 3rd row and 4th row |
| 324 ldrb r12, [r3], #1 | 323 vld1.u8 {d2[]}, [r3]! |
| 325 ldrb r2, [r3], #1 | 324 vld1.u8 {d4[]}, [r3] |
| 326 vdup.u16 q1, r12 | 325 vmovl.u8 q1, d2 |
| 327 vdup.u16 q2, r2 | 326 vmovl.u8 q2, d4 |
| 328 vadd.s16 q1, q1, q3 | 327 vadd.s16 q1, q1, q3 |
| 329 vadd.s16 q2, q2, q3 | 328 vadd.s16 q2, q2, q3 |
| 330 vqmovun.s16 d0, q1 | 329 vqmovun.s16 d0, q1 |
| 331 vqmovun.s16 d1, q2 | 330 vqmovun.s16 d1, q2 |
| 332 vst1.32 {d0[0]}, [r0], r1 | 331 vst1.32 {d0[0]}, [r0], r1 |
| 333 vst1.32 {d1[0]}, [r0], r1 | 332 vst1.32 {d1[0]}, [r0], r1 |
| 334 bx lr | 333 bx lr |
| 335 ENDP ; |vp9_tm_predictor_4x4_neon| | 334 ENDP ; |vp9_tm_predictor_4x4_neon| |
| 336 | 335 |
| 337 ;void vp9_tm_predictor_8x8_neon (uint8_t *dst, ptrdiff_t y_stride, | 336 ;void vp9_tm_predictor_8x8_neon (uint8_t *dst, ptrdiff_t y_stride, |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 vmovl.u8 q3, d0 | 621 vmovl.u8 q3, d0 |
| 623 vst1.64 {d24-d27}, [r0], r1 | 622 vst1.64 {d24-d27}, [r0], r1 |
| 624 | 623 |
| 625 subs r2, r2, #1 | 624 subs r2, r2, #1 |
| 626 bgt loop_32x32_neon | 625 bgt loop_32x32_neon |
| 627 | 626 |
| 628 bx lr | 627 bx lr |
| 629 ENDP ; |vp9_tm_predictor_32x32_neon| | 628 ENDP ; |vp9_tm_predictor_32x32_neon| |
| 630 | 629 |
| 631 END | 630 END |
| OLD | NEW |