Revision fa9b873e

View differences:

libavcodec/i386/dsputil_h264_template_mmx.c
98 98
    }
99 99

  
100 100
    /* general case, bilinear */
101
    rnd_reg = rnd ? ff_pw_32 : &ff_pw_28;
101
    rnd_reg = rnd ? &ff_pw_32.a : &ff_pw_28;
102 102
    asm volatile("movd %2, %%mm4\n\t"
103 103
                 "movd %3, %%mm6\n\t"
104 104
                 "punpcklwd %%mm4, %%mm4\n\t"
......
250 250
        "sub $2, %2                 \n\t"
251 251
        "jnz 1b                     \n\t"
252 252
        : "+r"(dst), "+r"(src), "+r"(h)
253
        : "r"((long)stride), "m"(*ff_pw_32), "m"(x), "m"(y)
253
        : "r"((long)stride), "m"(ff_pw_32), "m"(x), "m"(y)
254 254
    );
255 255
}
256 256

  
......
301 301
        "sub $1, %2\n\t"
302 302
        "jnz 1b\n\t"
303 303
        : "+r" (dst), "+r"(src), "+r"(h)
304
        : "m" (*ff_pw_32), "r"((long)stride)
304
        : "m" (ff_pw_32), "r"((long)stride)
305 305
        : "%esi");
306 306

  
307 307
}
libavcodec/i386/dsputil_mmx.c
54 54
DECLARE_ALIGNED_8 (const uint64_t, ff_pw_15 ) = 0x000F000F000F000FULL;
55 55
DECLARE_ALIGNED_8 (const uint64_t, ff_pw_16 ) = 0x0010001000100010ULL;
56 56
DECLARE_ALIGNED_8 (const uint64_t, ff_pw_20 ) = 0x0014001400140014ULL;
57
DECLARE_ALIGNED_16(const uint64_t, ff_pw_32[2]) = {0x0020002000200020ULL, 0x0020002000200020ULL};
57
DECLARE_ALIGNED_16(const xmm_t,    ff_pw_32 ) = {0x0020002000200020ULL, 0x0020002000200020ULL};
58 58
DECLARE_ALIGNED_8 (const uint64_t, ff_pw_42 ) = 0x002A002A002A002AULL;
59 59
DECLARE_ALIGNED_8 (const uint64_t, ff_pw_64 ) = 0x0040004000400040ULL;
60 60
DECLARE_ALIGNED_8 (const uint64_t, ff_pw_96 ) = 0x0060006000600060ULL;
libavcodec/i386/dsputil_mmx.h
24 24

  
25 25
#include <stdint.h>
26 26

  
27
typedef struct { uint64_t a, b; } xmm_t;
28

  
27 29
extern const uint64_t ff_bone;
28 30
extern const uint64_t ff_wtwo;
29 31

  
......
36 38
extern const uint64_t ff_pw_15;
37 39
extern const uint64_t ff_pw_16;
38 40
extern const uint64_t ff_pw_20;
39
extern const uint64_t ff_pw_32[2];
41
extern const xmm_t    ff_pw_32;
40 42
extern const uint64_t ff_pw_42;
41 43
extern const uint64_t ff_pw_64;
42 44
extern const uint64_t ff_pw_96;
libavcodec/i386/h264dsp_mmx.c
75 75
        IDCT4_1D( %%mm4, %%mm2, %%mm3, %%mm0, %%mm1 )
76 76

  
77 77
        "pxor %%mm7, %%mm7    \n\t"
78
    :: "m"(*ff_pw_32));
78
    :: "m"(ff_pw_32));
79 79

  
80 80
    asm volatile(
81 81
    STORE_DIFF_4P( %%mm0, %%mm1, %%mm7)
......
294 294
        STORE_DIFF_8P(%%xmm0, (%0,%2,2), %%xmm6, %%xmm7)
295 295
        STORE_DIFF_8P(%%xmm1, (%0,%3),   %%xmm6, %%xmm7)
296 296
        :"+r"(dst)
297
        :"r"(block), "r"((long)stride), "r"(3L*stride), "m"(*ff_pw_32)
297
        :"r"(block), "r"((long)stride), "r"(3L*stride), "m"(ff_pw_32)
298 298
    );
299 299
}
300 300

  
......
926 926
        "decl %2                    \n\t"\
927 927
        " jnz 1b                    \n\t"\
928 928
        : "+a"(tmp), "+c"(dst), "+m"(h)\
929
        : "S"((long)dstStride), "m"(*ff_pw_32)\
929
        : "S"((long)dstStride), "m"(ff_pw_32)\
930 930
        : "memory"\
931 931
    );\
932 932
}\
......
1200 1200
        "decl %2                    \n\t"\
1201 1201
        " jnz 1b                    \n\t"\
1202 1202
        : "+a"(tmp), "+c"(dst), "+m"(h)\
1203
        : "S"((long)dstStride), "m"(*ff_pw_32)\
1203
        : "S"((long)dstStride), "m"(ff_pw_32)\
1204 1204
        : "memory"\
1205 1205
    );\
1206 1206
    tmp += 8 - size*24;\

Also available in: Unified diff