The channel count passed as a 32-bit register (w3) is later used
as a 64-bit register (x3) for pointer offsets without proper sign
extension, resulting in misbehavior. This commit adds an explicit
sxtw instruction to ensure the channel count is properly sign-extended.
Additionally, standardizes the use of the 32-bit w2 and w12 registers
in the core length logic across functions to prevent sign extension
issues with lengths without relying on explicit 64-bit casting, matching
expected input bounds tracking.
Signed-off-by: Hao Chen <haochenc@google.com>
libavcodec/aarch64/vc1dsp_neon.S is skipped here, as it intentionally
uses a layered indentation style to visually show how different
unrolled/interleaved phases fit together.
Signed-off-by: Martin Storsjö <martin@martin.st>
Some files currently rely on libavutil/cpu.h to include it for them;
yet said file won't use include it any more after the currently
deprecated functions are removed, so include attributes.h directly.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>