diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-11-18 13:35:11 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-11-18 13:35:15 +0100 |
commit | 0c79a3d9cb0c7a7acef30b7c01e9337ba91a4a81 (patch) | |
tree | 44cedc0449c8fd89f6915a2c26df52d59787c335 /libavresample/x86 | |
parent | d0a503c97cc59b17e77585a726448dfa46245f4d (diff) | |
parent | 7a9e65aceee678ee2677480579cb3b2208474140 (diff) | |
download | ffmpeg-0c79a3d9cb0c7a7acef30b7c01e9337ba91a4a81.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
x86: lavr: fix stack allocation for 7 and 8 channel downmixing on x86-32
lavr: fix the decision for writing directly to the output buffer
parisc: work around bug in gcc 4.3 and later
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavresample/x86')
-rw-r--r-- | libavresample/x86/audio_mix.asm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libavresample/x86/audio_mix.asm b/libavresample/x86/audio_mix.asm index 7f3b5b9080..a3f1af5787 100644 --- a/libavresample/x86/audio_mix.asm +++ b/libavresample/x86/audio_mix.asm @@ -278,7 +278,15 @@ cglobal mix_%1_to_%2_%3_flt, 3,in_channels+2,needed_mmregs+matrix_elements_mm, s and rsp, ~(mmsize-1) sub rsp, matrix_elements_stack * mmsize %else - %assign pad matrix_elements_stack * mmsize + (mmsize - gprsize) - (stack_offset & (mmsize - gprsize)) + %assign matrix_stack_size matrix_elements_stack * mmsize + %assign pad matrix_stack_size + (mmsize - gprsize) - (stack_offset & (mmsize - gprsize)) + ; on x86-32 for 7 and 8 channels we need more stack space for src pointers + %if ARCH_X86_32 && in_channels >= 7 + %assign pad pad + 0x10 + %define src5m [rsp+matrix_stack_size+0] + %define src6m [rsp+matrix_stack_size+4] + %define src7m [rsp+matrix_stack_size+8] + %endif SUB rsp, pad %endif %endif |