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/ _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".