x86: detect Bobcat, improve Atom optimizations, reorganize flags
authorJason Garrett-Glaser <jason@x264.com>
Sat, 2 Feb 2013 20:37:08 +0000 (12:37 -0800)
committerJason Garrett-Glaser <jason@x264.com>
Tue, 26 Feb 2013 07:22:53 +0000 (23:22 -0800)
commit4f24bb34453fdedefd161063e20516d148b80f8b
treedc3fdc4665a2dac9d137f0837d7b50dd84ba6405
parentd556d5540ab90b2c89a5ba0cd6ce393f87c19faf
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