mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-20 21:00:41 +08:00
avcodec/x86/vp3dsp: Remove unused macros
Forgotten in a677b38298.
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -197,213 +197,6 @@ cglobal put_vp_no_rnd_pixels8_l2, 5, 6, 0, dst, src1, src2, stride, h, stride3
|
||||
jnz .loop
|
||||
RET
|
||||
|
||||
; from original comments: The Macro does IDct on 4 1-D Dcts
|
||||
%macro BeginIDCT 0
|
||||
movq m2, I(3)
|
||||
movq m6, C(3)
|
||||
movq m4, m2
|
||||
movq m7, J(5)
|
||||
pmulhw m4, m6 ; r4 = c3*i3 - i3
|
||||
movq m1, C(5)
|
||||
pmulhw m6, m7 ; r6 = c3*i5 - i5
|
||||
movq m5, m1
|
||||
pmulhw m1, m2 ; r1 = c5*i3 - i3
|
||||
movq m3, I(1)
|
||||
pmulhw m5, m7 ; r5 = c5*i5 - i5
|
||||
movq m0, C(1)
|
||||
paddw m4, m2 ; r4 = c3*i3
|
||||
paddw m6, m7 ; r6 = c3*i5
|
||||
paddw m2, m1 ; r2 = c5*i3
|
||||
movq m1, J(7)
|
||||
paddw m7, m5 ; r7 = c5*i5
|
||||
movq m5, m0 ; r5 = c1
|
||||
pmulhw m0, m3 ; r0 = c1*i1 - i1
|
||||
paddsw m4, m7 ; r4 = C = c3*i3 + c5*i5
|
||||
pmulhw m5, m1 ; r5 = c1*i7 - i7
|
||||
movq m7, C(7)
|
||||
psubsw m6, m2 ; r6 = D = c3*i5 - c5*i3
|
||||
paddw m0, m3 ; r0 = c1*i1
|
||||
pmulhw m3, m7 ; r3 = c7*i1
|
||||
movq m2, I(2)
|
||||
pmulhw m7, m1 ; r7 = c7*i7
|
||||
paddw m5, m1 ; r5 = c1*i7
|
||||
movq m1, m2 ; r1 = i2
|
||||
pmulhw m2, C(2) ; r2 = c2*i2 - i2
|
||||
psubsw m3, m5 ; r3 = B = c7*i1 - c1*i7
|
||||
movq m5, J(6)
|
||||
paddsw m0, m7 ; r0 = A = c1*i1 + c7*i7
|
||||
movq m7, m5 ; r7 = i6
|
||||
psubsw m0, m4 ; r0 = A - C
|
||||
pmulhw m5, C(2) ; r5 = c2*i6 - i6
|
||||
paddw m2, m1 ; r2 = c2*i2
|
||||
pmulhw m1, C(6) ; r1 = c6*i2
|
||||
paddsw m4, m4 ; r4 = C + C
|
||||
paddsw m4, m0 ; r4 = C. = A + C
|
||||
psubsw m3, m6 ; r3 = B - D
|
||||
paddw m5, m7 ; r5 = c2*i6
|
||||
paddsw m6, m6 ; r6 = D + D
|
||||
pmulhw m7, C(6) ; r7 = c6*i6
|
||||
paddsw m6, m3 ; r6 = D. = B + D
|
||||
movq I(1), m4 ; save C. at I(1)
|
||||
psubsw m1, m5 ; r1 = H = c6*i2 - c2*i6
|
||||
movq m4, C(4)
|
||||
movq m5, m3 ; r5 = B - D
|
||||
pmulhw m3, m4 ; r3 = (c4 - 1) * (B - D)
|
||||
paddsw m7, m2 ; r3 = (c4 - 1) * (B - D)
|
||||
movq I(2), m6 ; save D. at I(2)
|
||||
movq m2, m0 ; r2 = A - C
|
||||
movq m6, I(0)
|
||||
pmulhw m0, m4 ; r0 = (c4 - 1) * (A - C)
|
||||
paddw m5, m3 ; r5 = B. = c4 * (B - D)
|
||||
movq m3, J(4)
|
||||
psubsw m5, m1 ; r5 = B.. = B. - H
|
||||
paddw m2, m0 ; r0 = A. = c4 * (A - C)
|
||||
psubsw m6, m3 ; r6 = i0 - i4
|
||||
movq m0, m6
|
||||
pmulhw m6, m4 ; r6 = (c4 - 1) * (i0 - i4)
|
||||
paddsw m3, m3 ; r3 = i4 + i4
|
||||
paddsw m1, m1 ; r1 = H + H
|
||||
paddsw m3, m0 ; r3 = i0 + i4
|
||||
paddsw m1, m5 ; r1 = H. = B + H
|
||||
pmulhw m4, m3 ; r4 = (c4 - 1) * (i0 + i4)
|
||||
paddsw m6, m0 ; r6 = F = c4 * (i0 - i4)
|
||||
psubsw m6, m2 ; r6 = F. = F - A.
|
||||
paddsw m2, m2 ; r2 = A. + A.
|
||||
movq m0, I(1) ; r0 = C.
|
||||
paddsw m2, m6 ; r2 = A.. = F + A.
|
||||
paddw m4, m3 ; r4 = E = c4 * (i0 + i4)
|
||||
psubsw m2, m1 ; r2 = R2 = A.. - H.
|
||||
%endmacro
|
||||
|
||||
; RowIDCT gets ready to transpose
|
||||
%macro RowIDCT 0
|
||||
BeginIDCT
|
||||
movq m3, I(2) ; r3 = D.
|
||||
psubsw m4, m7 ; r4 = E. = E - G
|
||||
paddsw m1, m1 ; r1 = H. + H.
|
||||
paddsw m7, m7 ; r7 = G + G
|
||||
paddsw m1, m2 ; r1 = R1 = A.. + H.
|
||||
paddsw m7, m4 ; r1 = R1 = A.. + H.
|
||||
psubsw m4, m3 ; r4 = R4 = E. - D.
|
||||
paddsw m3, m3
|
||||
psubsw m6, m5 ; r6 = R6 = F. - B..
|
||||
paddsw m5, m5
|
||||
paddsw m3, m4 ; r3 = R3 = E. + D.
|
||||
paddsw m5, m6 ; r5 = R5 = F. + B..
|
||||
psubsw m7, m0 ; r7 = R7 = G. - C.
|
||||
paddsw m0, m0
|
||||
movq I(1), m1 ; save R1
|
||||
paddsw m0, m7 ; r0 = R0 = G. + C.
|
||||
%endmacro
|
||||
|
||||
; Column IDCT normalizes and stores final results
|
||||
%macro ColumnIDCT 0
|
||||
BeginIDCT
|
||||
paddsw m2, OC_8 ; adjust R2 (and R1) for shift
|
||||
paddsw m1, m1 ; r1 = H. + H.
|
||||
paddsw m1, m2 ; r1 = R1 = A.. + H.
|
||||
psraw m2, 4 ; r2 = NR2
|
||||
psubsw m4, m7 ; r4 = E. = E - G
|
||||
psraw m1, 4 ; r1 = NR2
|
||||
movq m3, I(2) ; r3 = D.
|
||||
paddsw m7, m7 ; r7 = G + G
|
||||
movq I(2), m2 ; store NR2 at I2
|
||||
paddsw m7, m4 ; r7 = G. = E + G
|
||||
movq I(1), m1 ; store NR1 at I1
|
||||
psubsw m4, m3 ; r4 = R4 = E. - D.
|
||||
paddsw m4, OC_8 ; adjust R4 (and R3) for shift
|
||||
paddsw m3, m3 ; r3 = D. + D.
|
||||
paddsw m3, m4 ; r3 = R3 = E. + D.
|
||||
psraw m4, 4 ; r4 = NR4
|
||||
psubsw m6, m5 ; r6 = R6 = F. - B..
|
||||
psraw m3, 4 ; r3 = NR3
|
||||
paddsw m6, OC_8 ; adjust R6 (and R5) for shift
|
||||
paddsw m5, m5 ; r5 = B.. + B..
|
||||
paddsw m5, m6 ; r5 = R5 = F. + B..
|
||||
psraw m6, 4 ; r6 = NR6
|
||||
movq J(4), m4 ; store NR4 at J4
|
||||
psraw m5, 4 ; r5 = NR5
|
||||
movq I(3), m3 ; store NR3 at I3
|
||||
psubsw m7, m0 ; r7 = R7 = G. - C.
|
||||
paddsw m7, OC_8 ; adjust R7 (and R0) for shift
|
||||
paddsw m0, m0 ; r0 = C. + C.
|
||||
paddsw m0, m7 ; r0 = R0 = G. + C.
|
||||
psraw m7, 4 ; r7 = NR7
|
||||
movq J(6), m6 ; store NR6 at J6
|
||||
psraw m0, 4 ; r0 = NR0
|
||||
movq J(5), m5 ; store NR5 at J5
|
||||
movq J(7), m7 ; store NR7 at J7
|
||||
movq I(0), m0 ; store NR0 at I0
|
||||
%endmacro
|
||||
|
||||
; Following macro does two 4x4 transposes in place.
|
||||
;
|
||||
; At entry (we assume):
|
||||
;
|
||||
; r0 = a3 a2 a1 a0
|
||||
; I(1) = b3 b2 b1 b0
|
||||
; r2 = c3 c2 c1 c0
|
||||
; r3 = d3 d2 d1 d0
|
||||
;
|
||||
; r4 = e3 e2 e1 e0
|
||||
; r5 = f3 f2 f1 f0
|
||||
; r6 = g3 g2 g1 g0
|
||||
; r7 = h3 h2 h1 h0
|
||||
;
|
||||
; At exit, we have:
|
||||
;
|
||||
; I(0) = d0 c0 b0 a0
|
||||
; I(1) = d1 c1 b1 a1
|
||||
; I(2) = d2 c2 b2 a2
|
||||
; I(3) = d3 c3 b3 a3
|
||||
;
|
||||
; J(4) = h0 g0 f0 e0
|
||||
; J(5) = h1 g1 f1 e1
|
||||
; J(6) = h2 g2 f2 e2
|
||||
; J(7) = h3 g3 f3 e3
|
||||
;
|
||||
; I(0) I(1) I(2) I(3) is the transpose of r0 I(1) r2 r3.
|
||||
; J(4) J(5) J(6) J(7) is the transpose of r4 r5 r6 r7.
|
||||
;
|
||||
; Since r1 is free at entry, we calculate the Js first.
|
||||
%macro Transpose 0
|
||||
movq m1, m4 ; r1 = e3 e2 e1 e0
|
||||
punpcklwd m4, m5 ; r4 = f1 e1 f0 e0
|
||||
movq I(0), m0 ; save a3 a2 a1 a0
|
||||
punpckhwd m1, m5 ; r1 = f3 e3 f2 e2
|
||||
movq m0, m6 ; r0 = g3 g2 g1 g0
|
||||
punpcklwd m6, m7 ; r6 = h1 g1 h0 g0
|
||||
movq m5, m4 ; r5 = f1 e1 f0 e0
|
||||
punpckldq m4, m6 ; r4 = h0 g0 f0 e0 = R4
|
||||
punpckhdq m5, m6 ; r5 = h1 g1 f1 e1 = R5
|
||||
movq m6, m1 ; r6 = f3 e3 f2 e2
|
||||
movq J(4), m4
|
||||
punpckhwd m0, m7 ; r0 = h3 g3 h2 g2
|
||||
movq J(5), m5
|
||||
punpckhdq m6, m0 ; r6 = h3 g3 f3 e3 = R7
|
||||
movq m4, I(0) ; r4 = a3 a2 a1 a0
|
||||
punpckldq m1, m0 ; r1 = h2 g2 f2 e2 = R6
|
||||
movq m5, I(1) ; r5 = b3 b2 b1 b0
|
||||
movq m0, m4 ; r0 = a3 a2 a1 a0
|
||||
movq J(7), m6
|
||||
punpcklwd m0, m5 ; r0 = b1 a1 b0 a0
|
||||
movq J(6), m1
|
||||
punpckhwd m4, m5 ; r4 = b3 a3 b2 a2
|
||||
movq m5, m2 ; r5 = c3 c2 c1 c0
|
||||
punpcklwd m2, m3 ; r2 = d1 c1 d0 c0
|
||||
movq m1, m0 ; r1 = b1 a1 b0 a0
|
||||
punpckldq m0, m2 ; r0 = d0 c0 b0 a0 = R0
|
||||
punpckhdq m1, m2 ; r1 = d1 c1 b1 a1 = R1
|
||||
movq m2, m4 ; r2 = b3 a3 b2 a2
|
||||
movq I(0), m0
|
||||
punpckhwd m5, m3 ; r5 = d3 c3 d2 c2
|
||||
movq I(1), m1
|
||||
punpckhdq m4, m5 ; r4 = d3 c3 b3 a3 = R3
|
||||
punpckldq m2, m5 ; r2 = d2 c2 b2 a2 = R2
|
||||
movq I(3), m4
|
||||
movq I(2), m2
|
||||
%endmacro
|
||||
|
||||
%macro VP3_1D_IDCT_SSE2 0
|
||||
movdqa m2, I(3) ; xmm2 = i3
|
||||
movdqa m6, C(3) ; xmm6 = c3
|
||||
|
||||
Reference in New Issue
Block a user