Revision 1b3e43e4

View differences:

libavcodec/x86/h264_intrapred.asm
344 344
%endif
345 345
    paddw        m0, m1           ; sum of H coefficients
346 346

  
347
%ifidn %3, h264
348
    pmullw       m0, [pw_5]
349
    paddw        m0, [pw_32]
350
    psraw        m0, 6
351
%elifidn %3, rv40
352
    pmullw       m0, [pw_5]
353
    psraw        m0, 6
354
%elifidn %3, svq3
355
    movd        r3d, m0
356
    movsx        r3, r3w
357
    test         r3, r3
358
    lea          r4, [r3+3]
359
    cmovs        r3, r4
360
    sar          r3, 2           ; H/4
361
    lea          r3, [r3*5]      ; 5*(H/4)
362
    test         r3, r3
363
    lea          r4, [r3+15]
364
    cmovs        r3, r4
365
    sar          r3, 4           ; (5*(H/4))/16
366
    movd         m0, r3d
367
%endif
368

  
369 347
    lea          r4, [r0+r2*8-1]
370 348
    lea          r3, [r0+r2*4-1]
371 349
    add          r4, r2
......
468 446
    movzx        r3, byte [r3+r2*2   ]
469 447
    lea          r3, [r3+r4+1]
470 448
    shl          r3, 4
449

  
471 450
    movd        r1d, m0
472 451
    movsx       r1d, r1w
452
%ifnidn %3, svq3
453
%ifidn %3, h264
454
    lea         r1d, [r1d*5+32]
455
%else ; rv40
456
    lea         r1d, [r1d*5]
457
%endif
458
    sar         r1d, 6
459
%else ; svq3
460
    test        r1d, r1d
461
    lea         r4d, [r1d+3]
462
    cmovs       r1d, r4d
463
    sar         r1d, 2           ; H/4
464
    lea         r1d, [r1d*5]     ; 5*(H/4)
465
    test        r1d, r1d
466
    lea         r4d, [r1d+15]
467
    cmovs       r1d, r4d
468
    sar         r1d, 4           ; (5*(H/4))/16
469
%endif
470
    movd         m0, r1d
471

  
473 472
    add         r1d, r5d
474 473
    add         r3d, r1d
475 474
    shl         r1d, 3

Also available in: Unified diff