Optimizing Marvell Graphics With iwMMXt
Phoronix: Optimizing Marvell Graphics With iwMMXt
Thanks in large part to iwMMXt fixes/improvements found in GCC 4.8, the ARM Marvell graphics performance will be much-improved, which will benefit the OLPC XO-1.75...
I hadn't realized that there were ARM CPUs out there with x86-derived SIMD extensions... cool. I don't own any Marvell stuff, but anything we can do to improve ARM performance is good with me. I've got a development phone running Android 2.3 and a tablet running Android 4.0.3 (w/ A8 CPU and Mali 400 GPU), and I'm perfectly willing to accept any and all performance improvements that I can get on my admittedly bargain-bin gifts/purchases.
Nice work there Matt.
Though following the ML from the initial MMX work, seems that pixman's MMX parts no longer run on actual MMX cpus, ie Pentium MMX and more importantly the Xcore86 variants (which are still sold and produced, they are used in passive small PCs, thin clients etc).
Originally Posted by curaga
Here's the story with original MMX CPUs:
A few years ago, Søren used a few MMX Extension instructions but removed them after running into some trouble. The CPU detection was modified to only use the MMX paths when MMX Extensions were available -- and when MMX Extension instructions were removed I don't think the CPU detection code was reverted back.
So, actually original MMX CPUs haven't been using this code in quite some time. I sort of wanted to keep support for them around, but it would require either a compile-time flag (meaning it'd never be tested) or a huge duplication of code (meaning it'd never be tested). Loongson's vector instructions and ARM's iwMMXt both have important improvements over the original MMX which are also available in the MMX Extensions, so it makes sense to use them.
To be clear, the MMX code works on anything with MMX+3DNow (e.g., AMD K6-2 and newer) or MMX+SSE (e.g., Pentium III and newer)
These two changes added back the use of some important MMX Extension instructions, and from the commit messages you can see why we like using them:
If someone was so inclined, they could modify the code to run on original MMX CPUs, but I wouldn't expect the code to go upstream unless you're doing it for a reason other than to support the 233 MHz Pentium MMX system in your closet.
As mentioned, 1+ Ghz Xcore86 cpus are still produced and sold. A bit better than the P5 MMX in a closet