diff options
Diffstat (limited to 'media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s')
-rw-r--r-- | media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s index a04c105..64d767a 100644 --- a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s +++ b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s @@ -26,53 +26,53 @@ PreMDCT: stmdb sp!, {r4 - r11, lr} - + add r9, r0, r1, lsl #2 sub r3, r9, #32 movs r1, r1, asr #2 - beq PreMDCT_END - + beq PreMDCT_END + PreMDCT_LOOP: VLD4.I32 {d0, d2, d4, d6}, [r2]! @ cosa = *csptr++@ sina = *csptr++@ VLD4.I32 {d1, d3, d5, d7}, [r2]! @ cosb = *csptr++@ sinb = *csptr++@ VLD2.I32 {d8, d9, d10, d11}, [r0] @ tr1 = *(buf0 + 0)@ ti2 = *(buf0 + 1)@ VLD2.I32 {d13, d15}, [r3]! @ tr2 = *(buf1 - 1)@ ti1 = *(buf1 + 0)@ VLD2.I32 {d12, d14}, [r3]! @ tr2 = *(buf1 - 1)@ ti1 = *(buf1 + 0)@ - - VREV64.32 Q8, Q7 + + VREV64.32 Q8, Q7 VREV64.32 Q9, Q6 - + VQDMULH.S32 Q10, Q0, Q4 @ MULHIGH(cosa, tr1) VQDMULH.S32 Q11, Q1, Q8 @ MULHIGH(sina, ti1) VQDMULH.S32 Q12, Q0, Q8 @ MULHIGH(cosa, ti1) VQDMULH.S32 Q13, Q1, Q4 @ MULHIGH(sina, tr1) - + VADD.S32 Q0, Q10, Q11 @ *buf0++ = MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@ VSUB.S32 Q1, Q12, Q13 @ *buf0++ = MULHIGH(cosa, ti1) - MULHIGH(sina, tr1)@ - + VST2.I32 {d0, d1, d2, d3}, [r0]! sub r3, r3, #32 - + VQDMULH.S32 Q10, Q2, Q9 @ MULHIGH(cosb, tr2) VQDMULH.S32 Q11, Q3, Q5 @ MULHIGH(sinb, ti2) VQDMULH.S32 Q12, Q2, Q5 @ MULHIGH(cosb, ti2) VQDMULH.S32 Q13, Q3, Q9 @ MULHIGH(sinb, tr2) - + VADD.S32 Q0, Q10, Q11 @ MULHIGH(cosa, tr2) + MULHIGH(sina, ti2)@ VSUB.S32 Q1, Q12, Q13 @ MULHIGH(cosa, ti2) - MULHIGH(sina, tr2)@ - + VREV64.32 Q3, Q1 VREV64.32 Q2, Q0 - - VST2.I32 {d5, d7}, [r3]! - VST2.I32 {d4, d6}, [r3]! - + + VST2.I32 {d5, d7}, [r3]! + VST2.I32 {d4, d6}, [r3]! + subs r1, r1, #4 - sub r3, r3, #64 + sub r3, r3, #64 bne PreMDCT_LOOP - + PreMDCT_END: ldmia sp!, {r4 - r11, pc} @ENDP @ |PreMDCT| @@ -82,50 +82,50 @@ PreMDCT_END: PostMDCT: stmdb sp!, {r4 - r11, lr} - + add r9, r0, r1, lsl #2 sub r3, r9, #32 movs r1, r1, asr #2 beq PostMDCT_END - + PostMDCT_LOOP: VLD4.I32 {d0, d2, d4, d6}, [r2]! @ cosa = *csptr++@ sina = *csptr++@ VLD4.I32 {d1, d3, d5, d7}, [r2]! @ cosb = *csptr++@ sinb = *csptr++@ VLD2.I32 {d8, d9, d10, d11}, [r0] @ tr1 = *(zbuf1 + 0)@ ti1 = *(zbuf1 + 1)@ VLD2.I32 {d13, d15}, [r3]! @ tr2 = *(zbuf2 - 1)@ ti2 = *(zbuf2 + 0)@ - VLD2.I32 {d12, d14}, [r3]! @ tr2 = *(zbuf2 - 1)@ ti2 = *(zbuf2 + 0)@ + VLD2.I32 {d12, d14}, [r3]! @ tr2 = *(zbuf2 - 1)@ ti2 = *(zbuf2 + 0)@ + + VREV64.32 Q8, Q6 + VREV64.32 Q9, Q7 - VREV64.32 Q8, Q6 - VREV64.32 Q9, Q7 - VQDMULH.S32 Q10, Q0, Q4 @ MULHIGH(cosa, tr1) VQDMULH.S32 Q11, Q1, Q5 @ MULHIGH(sina, ti1) VQDMULH.S32 Q12, Q0, Q5 @ MULHIGH(cosa, ti1) VQDMULH.S32 Q13, Q1, Q4 @ MULHIGH(sina, tr1) - + VADD.S32 Q0, Q10, Q11 @ *buf0++ = MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@ VSUB.S32 Q5, Q13, Q12 @ *buf1-- = MULHIGH(sina, tr1) - MULHIGH(cosa, ti1)@ - + VQDMULH.S32 Q10, Q2, Q8 @ MULHIGH(cosb, tr2) VQDMULH.S32 Q11, Q3, Q9 @ MULHIGH(sinb, ti2) VQDMULH.S32 Q12, Q2, Q9 @ MULHIGH(cosb, ti2) VQDMULH.S32 Q13, Q3, Q8 @ MULHIGH(sinb, tr2) - + VADD.S32 Q4, Q10, Q11 @ *buf1-- = MULHIGH(cosa, tr2) + MULHIGH(sina, ti2)@ - VSUB.S32 Q1, Q13, Q12 @ *buf0++ = MULHIGH(sina, tr2) - MULHIGH(cosa, ti2)@ - + VSUB.S32 Q1, Q13, Q12 @ *buf0++ = MULHIGH(sina, tr2) - MULHIGH(cosa, ti2)@ + VREV64.32 Q2, Q4 - VREV64.32 Q3, Q5 - - sub r3, r3, #32 + VREV64.32 Q3, Q5 + + sub r3, r3, #32 VST2.I32 {d0, d1, d2, d3}, [r0]! - - VST2.I32 {d5, d7}, [r3]! - VST2.I32 {d4, d6}, [r3]! - + + VST2.I32 {d5, d7}, [r3]! + VST2.I32 {d4, d6}, [r3]! + subs r1, r1, #4 - sub r3, r3, #64 + sub r3, r3, #64 bne PostMDCT_LOOP PostMDCT_END: |