|
|
|
@ -128,8 +128,6 @@ static const struct algo idct_tab[] = { |
|
|
|
|
#define NB_ITS 20000 |
|
|
|
|
#define NB_ITS_SPEED 50000 |
|
|
|
|
|
|
|
|
|
static short idct_mmx_perm[64]; |
|
|
|
|
|
|
|
|
|
static short idct_simple_mmx_perm[64] = { |
|
|
|
|
0x00, 0x08, 0x04, 0x09, 0x01, 0x0C, 0x05, 0x0D, |
|
|
|
|
0x10, 0x18, 0x14, 0x19, 0x11, 0x1C, 0x15, 0x1D, |
|
|
|
@ -143,16 +141,6 @@ static short idct_simple_mmx_perm[64] = { |
|
|
|
|
|
|
|
|
|
static const uint8_t idct_sse2_row_perm[8] = { 0, 4, 1, 5, 2, 6, 3, 7 }; |
|
|
|
|
|
|
|
|
|
static void idct_mmx_init(void) |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
/* the mmx/mmxext idct uses a reordered input, so we patch scan tables */ |
|
|
|
|
for (i = 0; i < 64; i++) { |
|
|
|
|
idct_mmx_perm[i] = (i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
DECLARE_ALIGNED(16, static int16_t, block)[64]; |
|
|
|
|
DECLARE_ALIGNED(8, static int16_t, block1)[64]; |
|
|
|
|
|
|
|
|
@ -190,7 +178,7 @@ static void permute(int16_t dst[64], const int16_t src[64], int perm) |
|
|
|
|
|
|
|
|
|
if (perm == MMX_PERM) { |
|
|
|
|
for (i = 0; i < 64; i++) |
|
|
|
|
dst[idct_mmx_perm[i]] = src[i]; |
|
|
|
|
dst[(i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2)] = src[i]; |
|
|
|
|
} else if (perm == MMX_SIMPLE_PERM) { |
|
|
|
|
for (i = 0; i < 64; i++) |
|
|
|
|
dst[idct_simple_mmx_perm[i]] = src[i]; |
|
|
|
@ -469,7 +457,6 @@ int main(int argc, char **argv) |
|
|
|
|
int err = 0; |
|
|
|
|
|
|
|
|
|
ff_ref_dct_init(); |
|
|
|
|
idct_mmx_init(); |
|
|
|
|
|
|
|
|
|
for (;;) { |
|
|
|
|
c = getopt(argc, argv, "ih4t"); |
|
|
|
|