Revision f1efbca5 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, unsigned int len, unsigned int shift);
36
extern void ff_ac3_lshift_int16_sse2(int16_t *src, unsigned int len, unsigned int shift);
37

  
38
extern void ff_ac3_rshift_int32_mmx (int32_t *src, unsigned int len, unsigned int shift);
39
extern void ff_ac3_rshift_int32_sse2(int32_t *src, unsigned int len, unsigned int shift);
40

  
35 41
av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c)
36 42
{
37 43
    int mm_flags = av_get_cpu_flags();
......
40 46
    if (mm_flags & AV_CPU_FLAG_MMX) {
41 47
        c->ac3_exponent_min = ff_ac3_exponent_min_mmx;
42 48
        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_rshift_int32 = ff_ac3_rshift_int32_mmx;
43 51
    }
44 52
    if (mm_flags & AV_CPU_FLAG_MMX2 && HAVE_MMX2) {
45 53
        c->ac3_exponent_min = ff_ac3_exponent_min_mmxext;
......
48 56
    if (mm_flags & AV_CPU_FLAG_SSE2 && HAVE_SSE) {
49 57
        c->ac3_exponent_min = ff_ac3_exponent_min_sse2;
50 58
        c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_sse2;
59
        if (!(mm_flags & AV_CPU_FLAG_SSE2SLOW)) {
60
            c->ac3_lshift_int16 = ff_ac3_lshift_int16_sse2;
61
            c->ac3_rshift_int32 = ff_ac3_rshift_int32_sse2;
62
        }
51 63
    }
52 64
    if (mm_flags & AV_CPU_FLAG_SSSE3 && HAVE_SSSE3) {
53 65
        c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_ssse3;

Also available in: Unified diff