A gigantic mistake was done in much of ffmpeg assembly: They are abusing nasm macro-preprocessor up to obscene levels...
Why is it "abusing," and what would you suggest as an alternative?
And the macro language is specific to nasm.
What to do: unroll the macros and/or use a little abstraction using a simple common macro preprocessor, aka not tied to the assembler.
And I am just doing exactly that: my x86_64 assembly code does assemble with fasm/nasm/gas with a little abstraction using a C preprocessor.