| @@ -4140,9 +4140,15 @@ endfunc · 4139 unmodified lines |
| 4140 | DISABLE_I8MM | 4140 | DISABLE_I8MM |
| 4141 | #endif | 4141 | #endif |
| 4142 | | 4142 | |
| | 4143 | function vvc_put_qpel_hv4_8_end_neon |
| | 4144 | vvc_load_qpel_filterh x5 |
| | 4145 | mov x7, #(VVC_MAX_PB_SIZE * 2) |
| | 4146 | b 1f |
| | 4147 | endfunc |
| 4143 | | 4148 | |
| 4144 | function hevc_put_hevc_qpel_hv4_8_end_neon | 4149 | function hevc_put_hevc_qpel_hv4_8_end_neon |
| 4145 | load_qpel_filterh x5, x4 | 4150 | load_qpel_filterh x5, x4 |
| | 4151 | 1: |
| 4146 | ldr d16, [sp] | 4152 | ldr d16, [sp] |
| 4147 | ldr d17, [sp, x7] | 4153 | ldr d17, [sp, x7] |
| 4148 | add sp, sp, x7, lsl #1 | 4154 | add sp, sp, x7, lsl #1 |
| @@ -4194,9 +4200,16 @@ function hevc_put_hevc_qpel_hv6_8_end_neon · 45 unmodified lines |
| 4194 | ret | 4200 | ret |
| 4195 | endfunc | 4201 | endfunc |
| 4196 | | 4202 | |
| | 4203 | function vvc_put_qpel_hv8_8_end_neon |
| | 4204 | vvc_load_qpel_filterh x5 |
| | 4205 | mov x7, #(VVC_MAX_PB_SIZE * 2) |
| | 4206 | b 1f |
| | 4207 | endfunc |
| | 4208 | |
| 4197 | function hevc_put_hevc_qpel_hv8_8_end_neon | 4209 | function hevc_put_hevc_qpel_hv8_8_end_neon |
| 4198 | mov x7, #128 | 4210 | mov x7, #128 |
| 4199 | load_qpel_filterh x5, x4 | 4211 | load_qpel_filterh x5, x4 |
| | 4212 | 1: |
| 4200 | ldr q16, [sp] | 4213 | ldr q16, [sp] |
| 4201 | ldr q17, [sp, x7] | 4214 | ldr q17, [sp, x7] |
| 4202 | add sp, sp, x7, lsl #1 | 4215 | add sp, sp, x7, lsl #1 |
| @@ -4247,9 +4260,16 @@ function hevc_put_hevc_qpel_hv12_8_end_neon · 44 unmodified lines |
| 4247 | ret | 4260 | ret |
| 4248 | endfunc | 4261 | endfunc |
| 4249 | | 4262 | |
| | 4263 | function vvc_put_qpel_hv16_8_end_neon |
| | 4264 | vvc_load_qpel_filterh x5 |
| | 4265 | mov x7, #(VVC_MAX_PB_SIZE * 2) |
| | 4266 | b 1f |
| | 4267 | endfunc |
| | 4268 | |
| 4250 | function hevc_put_hevc_qpel_hv16_8_end_neon | 4269 | function hevc_put_hevc_qpel_hv16_8_end_neon |
| 4251 | mov x7, #128 | 4270 | mov x7, #128 |
| 4252 | load_qpel_filterh x5, x4 | 4271 | load_qpel_filterh x5, x4 |
| | 4272 | 1: |
| 4253 | ld1 {v16.8h, v17.8h}, [sp], x7 | 4273 | ld1 {v16.8h, v17.8h}, [sp], x7 |
| 4254 | ld1 {v18.8h, v19.8h}, [sp], x7 | 4274 | ld1 {v18.8h, v19.8h}, [sp], x7 |
| 4255 | ld1 {v20.8h, v21.8h}, [sp], x7 | 4275 | ld1 {v20.8h, v21.8h}, [sp], x7 |
| @@ -4272,6 +4292,12 @@ function hevc_put_hevc_qpel_hv16_8_end_neon · 16 unmodified lines |
| 4272 | ret | 4292 | ret |
| 4273 | endfunc | 4293 | endfunc |
| 4274 | | 4294 | |
| | 4295 | function vvc_put_qpel_hv32_8_end_neon |
| | 4296 | vvc_load_qpel_filterh x5 |
| | 4297 | mov x7, #(VVC_MAX_PB_SIZE * 2) |
| | 4298 | b 0f |
| | 4299 | endfunc |
| | 4300 | |
| 4275 | function hevc_put_hevc_qpel_hv32_8_end_neon | 4301 | function hevc_put_hevc_qpel_hv32_8_end_neon |
| 4276 | mov x7, #128 | 4302 | mov x7, #128 |
| 4277 | load_qpel_filterh x5, x4 | 4303 | load_qpel_filterh x5, x4 |
| @@ -4325,6 +4351,25 @@ function ff_hevc_put_hevc_qpel_hv4_8_\suffix, export=1 · 47 unmodified lines |
| 4325 | b hevc_put_hevc_qpel_hv4_8_end_neon | 4351 | b hevc_put_hevc_qpel_hv4_8_end_neon |
| 4326 | endfunc | 4352 | endfunc |
| 4327 | | 4353 | |
| | 4354 | function ff_vvc_put_qpel_hv4_8_\suffix, export=1 |
| | 4355 | add w10, w3, #8 |
| | 4356 | lsl x10, x10, #8 |
| | 4357 | mov x14, sp |
| | 4358 | sub sp, sp, x10 // tmp_array |
| | 4359 | stp x5, x30, [sp, #-48]! |
| | 4360 | stp x0, x3, [sp, #16] |
| | 4361 | str x14, [sp, #32] |
| | 4362 | add x0, sp, #48 |
| | 4363 | sub x1, x1, x2, lsl #1 |
| | 4364 | add x3, x3, #7 |
| | 4365 | sub x1, x1, x2 |
| | 4366 | bl X(ff_vvc_put_qpel_h4_8_\suffix) |
| | 4367 | ldr x14, [sp, #32] |
| | 4368 | ldp x0, x3, [sp, #16] |
| | 4369 | ldp x5, x30, [sp], #48 |
| | 4370 | b vvc_put_qpel_hv4_8_end_neon |
| | 4371 | endfunc |
| | 4372 | |
| 4328 | function ff_hevc_put_hevc_qpel_hv6_8_\suffix, export=1 | 4373 | function ff_hevc_put_hevc_qpel_hv6_8_\suffix, export=1 |
| 4329 | add w10, w3, #8 | 4374 | add w10, w3, #8 |
| 4330 | mov x7, #128 | 4375 | mov x7, #128 |
| @@ -4364,6 +4409,25 @@ function ff_hevc_put_hevc_qpel_hv8_8_\suffix, export=1 · 33 unmodified lines |
| 4364 | b hevc_put_hevc_qpel_hv8_8_end_neon | 4409 | b hevc_put_hevc_qpel_hv8_8_end_neon |
| 4365 | endfunc | 4410 | endfunc |
| 4366 | | 4411 | |
| | 4412 | function ff_vvc_put_qpel_hv8_8_\suffix, export=1 |
| | 4413 | add w10, w3, #8 |
| | 4414 | lsl x10, x10, #8 |
| | 4415 | sub x1, x1, x2, lsl #1 |
| | 4416 | mov x14, sp |
| | 4417 | sub sp, sp, x10 // tmp_array |
| | 4418 | stp x5, x30, [sp, #-48]! |
| | 4419 | stp x0, x3, [sp, #16] |
| | 4420 | str x14, [sp, #32] |
| | 4421 | add x0, sp, #48 |
| | 4422 | add x3, x3, #7 |
| | 4423 | sub x1, x1, x2 |
| | 4424 | bl X(ff_vvc_put_qpel_h8_8_\suffix) |
| | 4425 | ldr x14, [sp, #32] |
| | 4426 | ldp x0, x3, [sp, #16] |
| | 4427 | ldp x5, x30, [sp], #48 |
| | 4428 | b vvc_put_qpel_hv8_8_end_neon |
| | 4429 | endfunc |
| | 4430 | |
| 4367 | function ff_hevc_put_hevc_qpel_hv12_8_\suffix, export=1 | 4431 | function ff_hevc_put_hevc_qpel_hv12_8_\suffix, export=1 |
| 4368 | add w10, w3, #8 | 4432 | add w10, w3, #8 |
| 4369 | lsl x10, x10, #7 | 4433 | lsl x10, x10, #7 |
| @@ -4403,6 +4467,25 @@ function ff_hevc_put_hevc_qpel_hv16_8_\suffix, export=1 · 33 unmodified lines |
| 4403 | b hevc_put_hevc_qpel_hv16_8_end_neon | 4467 | b hevc_put_hevc_qpel_hv16_8_end_neon |
| 4404 | endfunc | 4468 | endfunc |
| 4405 | | 4469 | |
| | 4470 | function ff_vvc_put_qpel_hv16_8_\suffix, export=1 |
| | 4471 | add w10, w3, #8 |
| | 4472 | lsl x10, x10, #8 |
| | 4473 | sub x1, x1, x2, lsl #1 |
| | 4474 | mov x14, sp |
| | 4475 | sub sp, sp, x10 // tmp_array |
| | 4476 | stp x5, x30, [sp, #-48]! |
| | 4477 | stp x0, x3, [sp, #16] |
| | 4478 | str x14, [sp, #32] |
| | 4479 | add x3, x3, #7 |
| | 4480 | add x0, sp, #48 |
| | 4481 | sub x1, x1, x2 |
| | 4482 | bl X(ff_vvc_put_qpel_h16_8_\suffix) |
| | 4483 | ldr x14, [sp, #32] |
| | 4484 | ldp x0, x3, [sp, #16] |
| | 4485 | ldp x5, x30, [sp], #48 |
| | 4486 | b vvc_put_qpel_hv16_8_end_neon |
| | 4487 | endfunc |
| | 4488 | |
| 4406 | function ff_hevc_put_hevc_qpel_hv24_8_\suffix, export=1 | 4489 | function ff_hevc_put_hevc_qpel_hv24_8_\suffix, export=1 |
| 4407 | stp x4, x5, [sp, #-64]! | 4490 | stp x4, x5, [sp, #-64]! |
| 4408 | stp x2, x3, [sp, #16] | 4491 | stp x2, x3, [sp, #16] |
| @@ -4439,6 +4522,26 @@ function ff_hevc_put_hevc_qpel_hv32_8_\suffix, export=1 · 30 unmodified lines |
| 4439 | b hevc_put_hevc_qpel_hv32_8_end_neon | 4522 | b hevc_put_hevc_qpel_hv32_8_end_neon |
| 4440 | endfunc | 4523 | endfunc |
| 4441 | | 4524 | |
| | 4525 | function ff_vvc_put_qpel_hv32_8_\suffix, export=1 |
| | 4526 | add w10, w3, #8 |
| | 4527 | sub x1, x1, x2, lsl #1 |
| | 4528 | lsl x10, x10, #8 |
| | 4529 | sub x1, x1, x2 |
| | 4530 | mov x14, sp |
| | 4531 | sub sp, sp, x10 // tmp_array |
| | 4532 | stp x5, x30, [sp, #-48]! |
| | 4533 | stp x0, x3, [sp, #16] |
| | 4534 | str x14, [sp, #32] |
| | 4535 | add x3, x3, #7 |
| | 4536 | add x0, sp, #48 |
| | 4537 | mov w6, #32 |
| | 4538 | bl X(ff_vvc_put_qpel_h32_8_\suffix) |
| | 4539 | ldr x14, [sp, #32] |
| | 4540 | ldp x0, x3, [sp, #16] |
| | 4541 | ldp x5, x30, [sp], #48 |
| | 4542 | b vvc_put_qpel_hv32_8_end_neon |
| | 4543 | endfunc |
| | 4544 | |
| 4442 | function ff_hevc_put_hevc_qpel_hv48_8_\suffix, export=1 | 4545 | function ff_hevc_put_hevc_qpel_hv48_8_\suffix, export=1 |
| 4443 | stp x4, x5, [sp, #-64]! | 4546 | stp x4, x5, [sp, #-64]! |
| 4444 | stp x2, x3, [sp, #16] | 4547 | stp x2, x3, [sp, #16] |
| @@ -4472,6 +4575,43 @@ function ff_hevc_put_hevc_qpel_hv64_8_\suffix, export=1 · 27 unmodified lines |
| 4472 | ldr x30, [sp], #16 | 4575 | ldr x30, [sp], #16 |
| 4473 | ret | 4576 | ret |
| 4474 | endfunc | 4577 | endfunc |
| | 4578 | |
| | 4579 | function ff_vvc_put_qpel_hv64_8_\suffix, export=1 |
| | 4580 | stp x4, x5, [sp, #-64]! |
| | 4581 | stp x2, x3, [sp, #16] |
| | 4582 | stp x0, x1, [sp, #32] |
| | 4583 | str x30, [sp, #48] |
| | 4584 | mov x6, #32 |
| | 4585 | bl X(ff_vvc_put_qpel_hv32_8_\suffix) |
| | 4586 | ldp x0, x1, [sp, #32] |
| | 4587 | ldp x2, x3, [sp, #16] |
| | 4588 | ldp x4, x5, [sp], #48 |
| | 4589 | add x1, x1, #32 |
| | 4590 | add x0, x0, #64 |
| | 4591 | mov x6, #32 |
| | 4592 | bl X(ff_vvc_put_qpel_hv32_8_\suffix) |
| | 4593 | ldr x30, [sp], #16 |
| | 4594 | ret |
| | 4595 | endfunc |
| | 4596 | |
| | 4597 | function ff_vvc_put_qpel_hv128_8_\suffix, export=1 |
| | 4598 | stp x4, x5, [sp, #-64]! |
| | 4599 | stp x2, x3, [sp, #16] |
| | 4600 | stp x0, x1, [sp, #32] |
| | 4601 | str x30, [sp, #48] |
| | 4602 | mov x6, #64 |
| | 4603 | bl X(ff_vvc_put_qpel_hv64_8_\suffix) |
| | 4604 | ldp x0, x1, [sp, #32] |
| | 4605 | ldp x2, x3, [sp, #16] |
| | 4606 | ldp x4, x5, [sp], #48 |
| | 4607 | add x1, x1, #64 |
| | 4608 | add x0, x0, #128 |
| | 4609 | mov x6, #64 |
| | 4610 | bl X(ff_vvc_put_qpel_hv64_8_\suffix) |
| | 4611 | ldr x30, [sp], #16 |
| | 4612 | ret |
| | 4613 | endfunc |
| | 4614 | |
| 4475 | .endm | 4615 | .endm |
| 4476 | | 4616 | |
| 4477 | qpel_hv neon | 4617 | qpel_hv neon |