x86: detect Bobcat, improve Atom optimizations, reorganize flags
authorFiona Glaser <fiona@x264.com>
Sat, 2 Feb 2013 20:37:08 +0000 (12:37 -0800)
committerFiona Glaser <fiona@x264.com>
Tue, 26 Feb 2013 07:22:53 +0000 (23:22 -0800)
commit5d60b9c9ad794a666d0cfe0dd9d66d5b9f58e033
tree1511d6757dd095192c2b9835a5d10ac620fbd018
parent75d927053ef5546eb011ff5a5ac19152dd4e3c63
x86: detect Bobcat, improve Atom optimizations, reorganize flags

The Bobcat has a 64-bit SIMD unit reminiscent of the Athlon 64; detect this
and apply the appropriate flags.

It also has an extremely slow palignr instruction; create a flag for this to
avoid massive penalties on palignr-heavy functions.

Improve Atom function selection and document exactly what the SLOW_ATOM flag
covers.

Add Atom-optimized SATD/SA8D/hadamard_ac functions: simply combine the ssse3
optimizations with the sse2 algorithm to avoid pmaddubsw, which is slow on
Atom along with other SIMD multiplies.

Drop TBM detection; it'll probably never be useful for x264.

Invert FastShuffle to SlowShuffle; it only ever applied to one CPU (Conroe).

Detect CMOV, to fail more gracefully when run on a chip with MMX2 but no CMOV.
12 files changed:
common/common.c
common/cpu.c
common/dct.c
common/frame.c
common/pixel.c
common/x86/mc-c.c
common/x86/pixel-a.asm
common/x86/pixel.h
common/x86/predict-c.c
encoder/encoder.c
tools/checkasm.c
x264.h