This avoids reloading them if they haven't been clobbered, if the first pass also was idct. This is similar to what was done in the aarch64 version. This is cherrypicked from libav commit 3c87039a404c5659ae9bf7454a04e186532eb40b.
Showing the changes to libavcodec/arm (1 of 1 file). Show all
Unified · Split
| @@ -814,7 +814,7 @@ A and r7, sp, #15 · 813 unmodified lines | |||
| 814 | mov r3, #\i | 814 | mov r3, #\i |
| 815 | bl \txfm1\()16_1d_4x16_pass1_neon | 815 | bl \txfm1\()16_1d_4x16_pass1_neon |
| 816 | .endr | 816 | .endr |
| 817 | .ifc \txfm2,idct | 817 | .ifc \txfm1\()_\txfm2,iadst_idct |
| 818 | movrel r12, idct_coeffs | 818 | movrel r12, idct_coeffs |
| 819 | vld1.16 {q0-q1}, [r12,:128] | 819 | vld1.16 {q0-q1}, [r12,:128] |
| 820 | .endif | 820 | .endif |