mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 20:19:55 +00:00
Merge commit '7b1ae0e73ab7f7c5eabc70dbe2e579127c6e154f'
* commit '7b1ae0e73ab7f7c5eabc70dbe2e579127c6e154f': checkasm/arm: preserve the stack alignment checkasm_checked_call Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
commit
286d8bae61
@ -42,6 +42,9 @@ endconst
|
||||
|
||||
#define ARG_STACK 4*(MAX_ARGS - 2)
|
||||
|
||||
@ align the used stack space to 8 to preserve the stack alignment
|
||||
#define ARG_STACK_A (((ARG_STACK + pushed + 7) & ~7) - pushed)
|
||||
|
||||
.macro clobbercheck variant
|
||||
.equ pushed, 4*9
|
||||
function checkasm_checked_call_\variant, export=1
|
||||
@ -59,10 +62,10 @@ function checkasm_checked_call_\variant, export=1
|
||||
.endif
|
||||
ldm r12, {r4-r11}
|
||||
|
||||
sub sp, sp, #ARG_STACK
|
||||
sub sp, sp, #ARG_STACK_A
|
||||
.equ pos, 0
|
||||
.rept MAX_ARGS-2
|
||||
ldr r12, [sp, #ARG_STACK + pushed + 8 + pos]
|
||||
ldr r12, [sp, #ARG_STACK_A + pushed + 8 + pos]
|
||||
str r12, [sp, #pos]
|
||||
.equ pos, pos + 4
|
||||
.endr
|
||||
@ -70,9 +73,9 @@ function checkasm_checked_call_\variant, export=1
|
||||
mov r12, r0
|
||||
mov r0, r2
|
||||
mov r1, r3
|
||||
ldrd r2, r3, [sp, #ARG_STACK + pushed]
|
||||
ldrd r2, r3, [sp, #ARG_STACK_A + pushed]
|
||||
blx r12
|
||||
add sp, sp, #ARG_STACK
|
||||
add sp, sp, #ARG_STACK_A
|
||||
|
||||
push {r0, r1}
|
||||
movrel r12, register_init
|
||||
|
Loading…
Reference in New Issue
Block a user