~ubuntu-branches/ubuntu/maverick/x264/maverick-updates

« back to all changes in this revision

Viewing changes to common/x86/deblock-a.asm

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2010-02-18 07:39:51 UTC
  • mto: This revision was merged to the branch mainline in revision 19.
  • Revision ID: james.westby@ubuntu.com-20100218073951-9jgsvskb976rfbvq
Tags: upstream-0.85.1442.1+git781d30
ImportĀ upstreamĀ versionĀ 0.85.1442.1+git781d30

Show diffs side-by-side

added added

removed removed

Lines of Context:
233
233
; clobbers: m0,3-6
234
234
%macro DEBLOCK_P0_Q0 0
235
235
    mova    m5, m1
236
 
    pxor    m5, m2           ; p0^q0
237
 
    pand    m5, [pb_01 GLOBAL] ; (p0^q0)&1
 
236
    pxor    m5, m2       ; p0^q0
 
237
    pand    m5, [pb_01]  ; (p0^q0)&1
238
238
    pcmpeqb m4, m4
239
239
    pxor    m3, m4
240
 
    pavgb   m3, m0           ; (p1 - q1 + 256)>>1
241
 
    pavgb   m3, [pb_03 GLOBAL] ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2
 
240
    pavgb   m3, m0       ; (p1 - q1 + 256)>>1
 
241
    pavgb   m3, [pb_03]  ; (((p1 - q1 + 256)>>1)+4)>>1 = 64+2+(p1-q1)>>2
242
242
    pxor    m4, m1
243
 
    pavgb   m4, m2           ; (q0 - p0 + 256)>>1
 
243
    pavgb   m4, m2       ; (q0 - p0 + 256)>>1
244
244
    pavgb   m3, m5
245
 
    paddusb m3, m4           ; d+128+33
246
 
    mova    m6, [pb_a1 GLOBAL]
 
245
    paddusb m3, m4       ; d+128+33
 
246
    mova    m6, [pb_a1]
247
247
    psubusb m6, m3
248
 
    psubusb m3, [pb_a1 GLOBAL]
 
248
    psubusb m3, [pb_a1]
249
249
    pminub  m6, m7
250
250
    pminub  m3, m7
251
251
    psubusb m1, m6
261
261
%macro LUMA_Q1 6
262
262
    mova    %6, m1
263
263
    pavgb   %6, m2
264
 
    pavgb   %2, %6             ; avg(p2,avg(p0,q0))
 
264
    pavgb   %2, %6       ; avg(p2,avg(p0,q0))
265
265
    pxor    %6, %3
266
 
    pand    %6, [pb_01 GLOBAL] ; (p2^avg(p0,q0))&1
267
 
    psubusb %2, %6             ; (p2+((p0+q0+1)>>1))>>1
 
266
    pand    %6, [pb_01]  ; (p2^avg(p0,q0))&1
 
267
    psubusb %2, %6       ; (p2+((p0+q0+1)>>1))>>1
268
268
    mova    %6, %1
269
269
    psubusb %6, %5
270
270
    paddusb %5, %1
614
614
    %define mask0 spill(2)
615
615
    %define mask1p spill(3)
616
616
    %define mask1q spill(4)
617
 
    %define mpb_00 [pb_00 GLOBAL]
618
 
    %define mpb_01 [pb_01 GLOBAL]
 
617
    %define mpb_00 [pb_00]
 
618
    %define mpb_01 [pb_01]
619
619
%endif
620
620
 
621
621
;-----------------------------------------------------------------------------
639
639
    mova    q1, [r0+r1]
640
640
%ifdef ARCH_X86_64
641
641
    pxor    mpb_00, mpb_00
642
 
    mova    mpb_01, [pb_01 GLOBAL]
 
642
    mova    mpb_01, [pb_01]
643
643
    LOAD_MASK r2d, r3d, t5 ; m5=beta-1, t5=alpha-1, m7=mask0
644
644
    SWAP    7, 12 ; m12=mask0
645
645
    pavgb   t5, mpb_00
658
658
    LOAD_MASK r2d, r3d, t5 ; m5=beta-1, t5=alpha-1, m7=mask0
659
659
    mova    m4, t5
660
660
    mova    mask0, m7
661
 
    pavgb   m4, [pb_00 GLOBAL]
662
 
    pavgb   m4, [pb_01 GLOBAL] ; alpha/4+1
 
661
    pavgb   m4, [pb_00]
 
662
    pavgb   m4, [pb_01] ; alpha/4+1
663
663
    DIFF_GT2 p0, q0, m4, m6, m7 ; m6 = |p0-q0| > alpha/4+1
664
664
    pand    m6, mask0
665
665
    DIFF_GT2 p0, p2, m5, m4, m7 ; m4 = |p2-p0| > beta-1
835
835
%macro CHROMA_INTRA_P0 3
836
836
    movq    m4, %1
837
837
    pxor    m4, %3
838
 
    pand    m4, [pb_01 GLOBAL] ; m4 = (p0^q1)&1
 
838
    pand    m4, [pb_01] ; m4 = (p0^q1)&1
839
839
    pavgb   %1, %3
840
840
    psubusb %1, m4
841
841
    pavgb   %1, %2             ; dst = avg(p1, avg(p0,q1) - ((p0^q1)&1))