[FFmpeg-devel] [PATCH] tx_float_neon: Do not access outside stack.
Rémi Denis-Courmont
remi at remlab.net
Sun Oct 9 19:54:46 EEST 2022
Le sunnuntaina 9. lokakuuta 2022, 19.36.24 EEST Reimar Döffinger a écrit :
> > While this fixes the ABI violation, it introduces multiple data
> > dependencies on stack pointer due to write-back.
>
> That is true in principle, this is not done consistently at all.
I have not checked the FFmpeg code base, but this *is* done consistently by
compilers and in a number of other assembler-heavy project, notably the Linux
kernel (see especially arch/arm64/crypto/*.S).
> > The idiomatic way to do this is to allocate the entire needed stack space
> > in the first store / last load, and use positive offsets elsewhence.
>
> Are you sure this is really relevant at all, considering it's so rarely done
> in the code?
I don't know what you base that statement on. I have rarely seen it not done
that way. And even then, it mostly occurs inside loops, where it cannot fully
be avoided and where there will be a couple of other instructions that don't
suffer the data dependency.
> Just to clarify the details, then end result should look like this?
> - stp d8, d9, [sp, #-16]
> - stp d10, d11, [sp, #-32]
> - stp d12, d13, [sp, #-48]
> - stp d14, d15, [sp, #-64]
> + stp d14, d15, [sp, #-16*4]!
> + stp d8, d9, [sp, #16*3]
> + stp d10, d11, [sp, #16*2]
> + stp d12, d13, [sp, #16]
Yes.
--
レミ・デニ-クールモン
http://www.remlab.net/
More information about the ffmpeg-devel
mailing list