Unified · Split
| @@ -378,24 +378,24 @@ cglobal sbr_hf_apply_noise_3, 5,5+NREGS+UNIX64,8, Y,s_m,q_filt,noise,kx,m_max · 377 unmodified lines | |||
| 378 | apply_noise_main: | 378 | apply_noise_main: |
| 379 | %if ARCH_X86_64 == 0 || WIN64 | 379 | %if ARCH_X86_64 == 0 || WIN64 |
| 380 | mov kxd, m_maxm | 380 | mov kxd, m_maxm |
| 381 | %define count kxq | 381 | DEFINE_ARGS Y, s_m, q_filt, noise, count |
| 382 | %else | 382 | %else |
| 383 | %define count m_maxq | 383 | DEFINE_ARGS Y, s_m, q_filt, noise, kx, count |
| 384 | %endif | 384 | %endif |
| 385 | movsxdifnidn noiseq, noised | 385 | movsxdifnidn noiseq, noised |
| 386 | dec noiseq | 386 | dec noiseq |
| 387 | shl count, 2 | 387 | shl countd, 2 |
| 388 | %ifdef PIC | 388 | %ifdef PIC |
| 389 | lea NOISE_TABLE, [sbr_noise_table] | 389 | lea NOISE_TABLE, [sbr_noise_table] |
| 390 | %endif | 390 | %endif |
| 391 | lea Yq, [Yq + 2*count] | 391 | lea Yq, [Yq + 2*countq] |
| 392 | add s_mq, count | 392 | add s_mq, countq |
| 393 | add q_filtq, count | 393 | add q_filtq, countq |
| 394 | shl noiseq, 3 | 394 | shl noiseq, 3 |
| 395 | pxor m5, m5 | 395 | pxor m5, m5 |
| 396 | neg count | 396 | neg countq |
| 397 | .loop: | 397 | .loop: |
| 398 | mova m1, [q_filtq + count] | 398 | mova m1, [q_filtq + countq] |
| 399 | movu m3, [noiseq + NOISE_TABLE + 1*mmsize] | 399 | movu m3, [noiseq + NOISE_TABLE + 1*mmsize] |
| 400 | movu m4, [noiseq + NOISE_TABLE + 2*mmsize] | 400 | movu m4, [noiseq + NOISE_TABLE + 2*mmsize] |
| 401 | add noiseq, 2*mmsize | 401 | add noiseq, 2*mmsize |
| @@ -404,7 +404,7 @@ apply_noise_main: · 2 unmodified lines | |||
| 404 | punpckldq m1, m1 | 404 | punpckldq m1, m1 |
| 405 | mulps m1, m3 ; m2 = q_filt[m] * ff_sbr_noise_table[noise] | 405 | mulps m1, m3 ; m2 = q_filt[m] * ff_sbr_noise_table[noise] |
| 406 | mulps m2, m4 ; m2 = q_filt[m] * ff_sbr_noise_table[noise] | 406 | mulps m2, m4 ; m2 = q_filt[m] * ff_sbr_noise_table[noise] |
| 407 | mova m3, [s_mq + count] | 407 | mova m3, [s_mq + countq] |
| 408 | ; TODO: replace by a vpermd in AVX2 | 408 | ; TODO: replace by a vpermd in AVX2 |
| 409 | punpckhdq m4, m3, m3 | 409 | punpckhdq m4, m3, m3 |
| 410 | punpckldq m3, m3 | 410 | punpckldq m3, m3 |
| @@ -414,15 +414,15 @@ apply_noise_main: · 3 unmodified lines | |||
| 414 | mulps m4, m0 ; s_m[m] * phi_sign | 414 | mulps m4, m0 ; s_m[m] * phi_sign |
| 415 | pand m1, m6 | 415 | pand m1, m6 |
| 416 | pand m2, m7 | 416 | pand m2, m7 |
| 417 | movu m6, [Yq + 2*count] | 417 | movu m6, [Yq + 2*countq] |
| 418 | movu m7, [Yq + 2*count + mmsize] | 418 | movu m7, [Yq + 2*countq + mmsize] |
| 419 | addps m3, m1 | 419 | addps m3, m1 |
| 420 | addps m4, m2 | 420 | addps m4, m2 |
| 421 | addps m6, m3 | 421 | addps m6, m3 |
| 422 | addps m7, m4 | 422 | addps m7, m4 |
| 423 | movu [Yq + 2*count], m6 | 423 | movu [Yq + 2*countq], m6 |
| 424 | movu [Yq + 2*count + mmsize], m7 | 424 | movu [Yq + 2*countq + mmsize], m7 |
| 425 | add count, mmsize | 425 | add countq, mmsize |
| 426 | jl .loop | 426 | jl .loop |
| 427 | RET | 427 | RET |
| 428 | 428 | ||