Revision f7a5e779 libavcodec/x86/ac3dsp_mmx.c

View differences:

libavcodec/x86/ac3dsp_mmx.c
32 32
extern int ff_ac3_max_msb_abs_int16_sse2  (const int16_t *src, int len);
33 33
extern int ff_ac3_max_msb_abs_int16_ssse3 (const int16_t *src, int len);
34 34

  
35
extern void ff_ac3_lshift_int16_mmx (int16_t *src, int len, unsigned int lshift);
36
extern void ff_ac3_lshift_int16_sse2(int16_t *src, int len, unsigned int lshift);
37

  
38
extern void ff_ac3_shift_int32_mmx (int32_t *src, int len, int shift);
39
extern void ff_ac3_shift_int32_sse2(int32_t *src, int len, int shift);
40

  
41 35
av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c)
42 36
{
43 37
    int mm_flags = av_get_cpu_flags();
......
46 40
    if (mm_flags & AV_CPU_FLAG_MMX) {
47 41
        c->ac3_exponent_min = ff_ac3_exponent_min_mmx;
48 42
        c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_mmx;
49
        c->ac3_lshift_int16 = ff_ac3_lshift_int16_mmx;
50
        c->ac3_shift_int32  = ff_ac3_shift_int32_mmx;
51 43
    }
52 44
    if (mm_flags & AV_CPU_FLAG_MMX2 && HAVE_MMX2) {
53 45
        c->ac3_exponent_min = ff_ac3_exponent_min_mmxext;
......
56 48
    if (mm_flags & AV_CPU_FLAG_SSE2 && HAVE_SSE) {
57 49
        c->ac3_exponent_min = ff_ac3_exponent_min_sse2;
58 50
        c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_sse2;
59

  
60
        if (!(mm_flags & AV_CPU_FLAG_SSE2SLOW)) {
61
            c->ac3_lshift_int16 = ff_ac3_lshift_int16_sse2;
62
            c->ac3_shift_int32  = ff_ac3_shift_int32_sse2;
63
        }
64 51
    }
65 52
    if (mm_flags & AV_CPU_FLAG_SSSE3 && HAVE_SSSE3) {
66 53
        c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_ssse3;

Also available in: Unified diff