WebRtcIsacfix_Time2SpecNeon and _Spec2TimeNeon: Fix stack alignment
The ABI (http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042e/IHI0042E_aapcs.pdf) says to 8-byte-align stack frames. That means we have to push an even number of registers on function entry if we want to be able to make subroutine calls without adjusting the stack first. BUG=4177 R=bjornv@webrtc.org, henrik.lundin@webrtc.org, zhongwei.yao@arm.com Review URL: https://webrtc-codereview.appspot.com/33149004 Cr-Commit-Position: refs/heads/master@{#8214} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8214 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -27,7 +27,8 @@ GLOBAL_LABEL WebRtcIsacfix_kSinTab2
|
||||
|
||||
DEFINE_FUNCTION WebRtcIsacfix_Time2SpecNeon
|
||||
.align 2
|
||||
push {r4-r11,lr}
|
||||
push {r3-r11,lr} @ need to push r4-r11, but push r3 too to keep
|
||||
@ stack 8-byte aligned
|
||||
sub sp, sp, #(16 + FRAMESAMPLES * 4)
|
||||
|
||||
str r0, [sp] @ inre1Q9
|
||||
@ -227,7 +228,7 @@ Time2Spec_PostFftTransform:
|
||||
bgt Time2Spec_PostFftTransform
|
||||
|
||||
add sp, sp, #(16 + FRAMESAMPLES * 4)
|
||||
pop {r4-r11,pc}
|
||||
pop {r3-r11,pc}
|
||||
|
||||
.align 8
|
||||
@ Cosine table 1 in Q14
|
||||
@ -328,7 +329,8 @@ _WebRtcIsacfix_kSinTab1: @ Label for iOS
|
||||
|
||||
DEFINE_FUNCTION WebRtcIsacfix_Spec2TimeNeon
|
||||
.align 2
|
||||
push {r4-r11,lr}
|
||||
push {r3-r11,lr} @ need to push r4-r11, but push r3 too to keep
|
||||
@ stack 8-byte aligned
|
||||
|
||||
sub sp, sp, #16
|
||||
str r0, [sp] @ inreQ7
|
||||
@ -640,4 +642,4 @@ DemodulateAndSeparate:
|
||||
bgt DemodulateAndSeparate
|
||||
|
||||
add sp, sp, #16
|
||||
pop {r4-r11,pc}
|
||||
pop {r3-r11,pc}
|
||||
|
||||
Reference in New Issue
Block a user