From 2857b47a2731579772c76d46285660972c0ba23d Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Wed, 25 Jan 2012 13:42:42 -0800 Subject: Preserve NEON callee-save registers d8-d15. BUG:5918479 Change-Id: I574bd5845d9e7e007c637aabbf170d03217d10ad --- .../codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s | 13 ++++++++++++- .../codecs/aacenc/src/asm/ARMV7/R4R8First_v7.s | 13 ++++++++++++- .../codecs/aacenc/src/asm/ARMV7/Radix4FFT_v7.s | 7 ++++++- 3 files changed, 30 insertions(+), 3 deletions(-) (limited to 'media/libstagefright/codecs/aacenc/src') 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 b2bc9d9..7f6b881 100644 --- a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s +++ b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s @@ -23,9 +23,13 @@ .section .text .global PreMDCT + .fnstart PreMDCT: stmdb sp!, {r4 - r11, lr} + .save {r4 - r11, lr} + fstmfdd sp!, {d8 - d15} + .vsave {d8 - d15} add r9, r0, r1, lsl #2 sub r3, r9, #32 @@ -74,14 +78,20 @@ PreMDCT_LOOP: bne PreMDCT_LOOP PreMDCT_END: + fldmfdd sp!, {d8 - d15} ldmia sp!, {r4 - r11, pc} @ENDP @ |PreMDCT| + .fnend .section .text .global PostMDCT + .fnstart PostMDCT: stmdb sp!, {r4 - r11, lr} + .save {r4 - r11, lr} + fstmfdd sp!, {d8 - d15} + .vsave {d8 - d15} add r9, r0, r1, lsl #2 sub r3, r9, #32 @@ -129,7 +139,8 @@ PostMDCT_LOOP: bne PostMDCT_LOOP PostMDCT_END: + fldmfdd sp!, {d8 - d15} ldmia sp!, {r4 - r11, pc} @ENDP @ |PostMDCT| - .end + .fnend diff --git a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/R4R8First_v7.s b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/R4R8First_v7.s index 3033156..03fa6a9 100644 --- a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/R4R8First_v7.s +++ b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/R4R8First_v7.s @@ -23,9 +23,13 @@ .section .text .global Radix8First + .fnstart Radix8First: stmdb sp!, {r4 - r11, lr} + .save {r4 - r11, lr} + fstmfdd sp!, {d8 - d15} + .vsave {d8 - d15} ldr r3, SQRT1_2 cmp r1, #0 @@ -103,17 +107,23 @@ Radix8First_LOOP: bne Radix8First_LOOP Radix8First_END: + fldmfdd sp!, {d8 - d15} ldmia sp!, {r4 - r11, pc} SQRT1_2: .word 0x2d413ccd @ENDP @ |Radix8First| + .fnend .section .text .global Radix4First + .fnstart Radix4First: stmdb sp!, {r4 - r11, lr} + .save {r4 - r11, lr} + fstmfdd sp!, {d8 - d15} + .vsave {d8 - d15} cmp r1, #0 beq Radix4First_END @@ -140,7 +150,8 @@ Radix4First_LOOP: bne Radix4First_LOOP Radix4First_END: + fldmfdd sp!, {d8 - d15} ldmia sp!, {r4 - r11, pc} @ENDP @ |Radix4First| - .end + .fnend diff --git a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/Radix4FFT_v7.s b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/Radix4FFT_v7.s index f874825..431bc30 100644 --- a/media/libstagefright/codecs/aacenc/src/asm/ARMV7/Radix4FFT_v7.s +++ b/media/libstagefright/codecs/aacenc/src/asm/ARMV7/Radix4FFT_v7.s @@ -23,9 +23,13 @@ .section .text .global Radix4FFT + .fnstart Radix4FFT: stmdb sp!, {r4 - r11, lr} + .save {r4 - r11, lr} + fstmfdd sp!, {d8 - d15} + .vsave {d8 - d15} mov r1, r1, asr #2 cmp r1, #0 @@ -137,7 +141,8 @@ Radix4FFT_LOOP1_END: bne Radix4FFT_LOOP1 Radix4FFT_END: + fldmfdd sp!, {d8 - d15} ldmia sp!, {r4 - r11, pc} @ENDP @ |Radix4FFT| - .end + .fnend -- cgit v1.1