X264's abstraction layer for cross-platform x86 assembly: now free to use
x264dev.multimedia.cx
x264dev.multimedia.cx
Find a video (en|de)coder without SIMD and you've found an unusable piece of software.
There's a reason that Intel focuses so much on SIMD instructions and arithmetic units with each new chip release: if not for SIMD or dedicated hardware, it would be physically impossible to decode 1080p video on almost any modern machine.
It's posts like these that can help getting the 70's stigma that assembler seems to be associated with removed.
Someone ought to do a major article about assembler in todays IT environment. Who does it, why they do it and why it is relevant.
Also worth noting that these video decoders tend to crash hard on invalid input. Tradeoffs.
I am still amazed we don't have an x86 assembler that is anywhere near what DSP people use. I mean, we still have to track register usage manually and do manual instruction reordering to improve performance! The x86 world could learn a lot from the DSP world here (Texas Instruments tools are a good example).
I believe these are called "compilers".
If it doesn't, it's a compiler bug, and should be fixed at that level.
Ideally yeah, but if you look at gcc for example, this statement is far from the truth. Then again, based on your logic, I guess gcc is buggy...