Revision bc0a603c

View differences:

libavcodec/ppc/dsputil_altivec.c
230 230
    int i;
231 231
    int s;
232 232
    const vector unsigned int zero = (const vector unsigned int)vec_splat_u32(0);
233
    vector unsigned char perm1, perm2, *pix1v, *pix2v;
233
    vector unsigned char perm1, perm2, pix1v_low, pix1v_high, pix2v_low, pix2v_high;
234 234
    vector unsigned char t1, t2, t3,t4, t5;
235 235
    vector unsigned int sad;
236 236
    vector signed int sumdiffs;
......
241 241
    for (i = 0; i < h; i++) {
242 242
        /* Read potentially unaligned pixels into t1 and t2 */
243 243
        perm1 = vec_lvsl(0, pix1);
244
        pix1v = (vector unsigned char *) pix1;
244
        pix1v_high = vec_ld( 0, pix1);
245
        pix1v_low  = vec_ld(15, pix1);
245 246
        perm2 = vec_lvsl(0, pix2);
246
        pix2v = (vector unsigned char *) pix2;
247
        t1 = vec_perm(pix1v[0], pix1v[1], perm1);
248
        t2 = vec_perm(pix2v[0], pix2v[1], perm2);
247
        pix2v_high = vec_ld( 0, pix2);
248
        pix2v_low  = vec_ld(15, pix2);
249
        t1 = vec_perm(pix1v_high, pix1v_low, perm1);
250
        t2 = vec_perm(pix2v_high, pix2v_low, perm2);
249 251

  
250 252
        /* Calculate a sum of abs differences vector */
251 253
        t3 = vec_max(t1, t2);

Also available in: Unified diff