Fixes crashes on Win32 and stack overruns on x86-32 in general.
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