Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
6ca60d4d
Commit
6ca60d4d
authored
Jul 09, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: h264_intrapred: port to cpuflags
parent
12776d5d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
119 additions
and
111 deletions
+119
-111
h264_intrapred.asm
libavcodec/x86/h264_intrapred.asm
+119
-111
No files found.
libavcodec/x86/h264_intrapred.asm
View file @
6ca60d4d
...
...
@@ -52,7 +52,8 @@ cextern pw_32
; void pred16x16_vertical(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
cglobal
pred16x16_vertical_8_mmx
,
2
,
3
INIT_MMX
mmx
cglobal
pred16x16_vertical_8
,
2
,
3
sub
r0
,
r1
mov
r2
,
8
movq
mm0
,
[
r0
+
0
]
...
...
@@ -67,7 +68,8 @@ cglobal pred16x16_vertical_8_mmx, 2,3
jg
.
loop
REP_RET
cglobal
pred16x16_vertical_8_sse
,
2
,
3
INIT_XMM
sse
cglobal
pred16x16_vertical_8
,
2
,
3
sub
r0
,
r1
mov
r2
,
4
movaps
xmm0
,
[r0]
...
...
@@ -122,7 +124,6 @@ INIT_MMX mmx2
PRED16x16_H
INIT_XMM
ssse3
PRED16x16_H
INIT_XMM
;-----------------------------------------------------------------------------
; void pred16x16_dc(uint8_t *src, int stride)
...
...
@@ -185,13 +186,12 @@ INIT_XMM sse2
PRED16x16_DC
INIT_XMM
ssse3
PRED16x16_DC
INIT_XMM
;-----------------------------------------------------------------------------
; void pred16x16_tm_vp8(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
%macro
PRED16x16_TM
_MMX
0
%macro
PRED16x16_TM
0
cglobal
pred16x16_tm_vp8_8
,
2
,
5
sub
r0
,
r1
pxor
mm7
,
mm7
...
...
@@ -228,12 +228,12 @@ cglobal pred16x16_tm_vp8_8, 2,5
%endmacro
INIT_MMX
mmx
PRED16x16_TM
_MMX
PRED16x16_TM
INIT_MMX
mmx2
PRED16x16_TM_MMX
INIT_MMX
PRED16x16_TM
cglobal
pred16x16_tm_vp8_8_sse2
,
2
,
6
,
6
INIT_XMM
sse2
cglobal
pred16x16_tm_vp8_8
,
2
,
6
,
6
sub
r0
,
r1
pxor
xmm2
,
xmm2
movdqa
xmm0
,
[r0]
...
...
@@ -548,7 +548,6 @@ INIT_XMM ssse3
H264_PRED16x16_PLANE
h264
H264_PRED16x16_PLANE
rv40
H264_PRED16x16_PLANE
svq3
INIT_XMM
;-----------------------------------------------------------------------------
; void pred8x8_plane(uint8_t *src, int stride)
...
...
@@ -723,13 +722,13 @@ INIT_XMM sse2
H264_PRED8x8_PLANE
INIT_XMM
ssse3
H264_PRED8x8_PLANE
INIT_XMM
;-----------------------------------------------------------------------------
; void pred8x8_vertical(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
cglobal
pred8x8_vertical_8_mmx
,
2
,
2
INIT_MMX
mmx
cglobal
pred8x8_vertical_8
,
2
,
2
sub
r0
,
r1
movq
mm0
,
[r0]
%rep
3
...
...
@@ -768,12 +767,12 @@ INIT_MMX mmx2
PRED8x8_H
INIT_MMX
ssse3
PRED8x8_H
INIT_MMX
;-----------------------------------------------------------------------------
; void pred8x8_top_dc_mmxext(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
cglobal
pred8x8_top_dc_8_mmxext
,
2
,
5
INIT_MMX
mmxext
cglobal
pred8x8_top_dc_8
,
2
,
5
sub
r0
,
r1
movq
mm0
,
[r0]
pxor
mm1
,
mm1
...
...
@@ -807,8 +806,8 @@ cglobal pred8x8_top_dc_8_mmxext, 2,5
; void pred8x8_dc_mmxext(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
cglobal
pred8x8_dc_8
_mmxext
,
2
,
5
INIT_MMX
mmxext
cglobal
pred8x8_dc_8
,
2
,
5
sub
r0
,
r1
pxor
m7
,
m7
movd
m0
,
[
r0
+
0
]
...
...
@@ -868,7 +867,8 @@ cglobal pred8x8_dc_8_mmxext, 2,5
; void pred8x8_dc_rv40(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
cglobal
pred8x8_dc_rv40_8_mmxext
,
2
,
7
INIT_MMX
mmxext
cglobal
pred8x8_dc_rv40_8
,
2
,
7
mov
r4
,
r0
sub
r0
,
r1
pxor
mm0
,
mm0
...
...
@@ -904,7 +904,7 @@ cglobal pred8x8_dc_rv40_8_mmxext, 2,7
; void pred8x8_tm_vp8(uint8_t *src, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8_TM
_MMX
0
%macro
PRED8x8_TM
0
cglobal
pred8x8_tm_vp8_8
,
2
,
6
sub
r0
,
r1
pxor
mm7
,
mm7
...
...
@@ -940,12 +940,12 @@ cglobal pred8x8_tm_vp8_8, 2,6
%endmacro
INIT_MMX
mmx
PRED8x8_TM
_MMX
PRED8x8_TM
INIT_MMX
mmx2
PRED8x8_TM_MMX
INIT_MMX
PRED8x8_TM
cglobal
pred8x8_tm_vp8_8_sse2
,
2
,
6
,
4
INIT_XMM
sse2
cglobal
pred8x8_tm_vp8_8
,
2
,
6
,
4
sub
r0
,
r1
pxor
xmm1
,
xmm1
movq
xmm0
,
[r0]
...
...
@@ -973,7 +973,8 @@ cglobal pred8x8_tm_vp8_8_sse2, 2,6,4
jg
.
loop
REP_RET
cglobal
pred8x8_tm_vp8_8_ssse3
,
2
,
3
,
6
INIT_XMM
ssse3
cglobal
pred8x8_tm_vp8_8
,
2
,
3
,
6
sub
r0
,
r1
movdqa
xmm4
,
[
tm_shuf
]
pxor
xmm1
,
xmm1
...
...
@@ -1014,8 +1015,8 @@ cglobal pred8x8_tm_vp8_8_ssse3, 2,3,6
;-----------------------------------------------------------------------------
; void pred8x8l_top_dc(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8L_TOP_DC
1
cglobal
pred8x8l_top_dc_8
_
%1
,
4
,
4
%macro
PRED8x8L_TOP_DC
0
cglobal
pred8x8l_top_dc_8
,
4
,
4
sub
r0
,
r3
pxor
mm7
,
mm7
movq
mm0
,
[
r0
-
8
]
...
...
@@ -1061,18 +1062,19 @@ cglobal pred8x8l_top_dc_8_%1, 4,4
RET
%endmacro
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_TOP_DC
mmxext
PRED8x8L_TOP_DC
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_TOP_DC
ssse3
PRED8x8L_TOP_DC
;-----------------------------------------------------------------------------
;void pred8x8l_dc(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8L_DC
1
cglobal
pred8x8l_dc_8
_
%1
,
4
,
5
%macro
PRED8x8L_DC
0
cglobal
pred8x8l_dc_8
,
4
,
5
sub
r0
,
r3
lea
r4
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -1164,18 +1166,20 @@ cglobal pred8x8l_dc_8_%1, 4,5
movq
[
r4
+
r3
*
2
]
,
mm0
RET
%endmacro
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_DC
mmxext
PRED8x8L_DC
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_DC
ssse3
PRED8x8L_DC
;-----------------------------------------------------------------------------
; void pred8x8l_horizontal(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8L_HORIZONTAL
1
cglobal
pred8x8l_horizontal_8
_
%1
,
4
,
4
%macro
PRED8x8L_HORIZONTAL
0
cglobal
pred8x8l_horizontal_8
,
4
,
4
sub
r0
,
r3
lea
r2
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -1236,18 +1240,19 @@ cglobal pred8x8l_horizontal_8_%1, 4,4
RET
%endmacro
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_HORIZONTAL
mmxext
PRED8x8L_HORIZONTAL
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_HORIZONTAL
ssse3
PRED8x8L_HORIZONTAL
;-----------------------------------------------------------------------------
; void pred8x8l_vertical(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8L_VERTICAL
1
cglobal
pred8x8l_vertical_8
_
%1
,
4
,
4
%macro
PRED8x8L_VERTICAL
0
cglobal
pred8x8l_vertical_8
,
4
,
4
sub
r0
,
r3
movq
mm0
,
[
r0
-
8
]
movq
mm3
,
[r0]
...
...
@@ -1287,19 +1292,20 @@ cglobal pred8x8l_vertical_8_%1, 4,4
RET
%endmacro
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_VERTICAL
mmxext
PRED8x8L_VERTICAL
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_VERTICAL
ssse3
PRED8x8L_VERTICAL
;-----------------------------------------------------------------------------
;void pred8x8l_down_left(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred8x8l_down_left_8
_mmxext
,
4
,
5
cglobal
pred8x8l_down_left_8
,
4
,
5
sub
r0
,
r3
movq
mm0
,
[
r0
-
8
]
movq
mm3
,
[r0]
...
...
@@ -1406,8 +1412,8 @@ cglobal pred8x8l_down_left_8_mmxext, 4,5
movq
[
r0
+
r3
*
1
]
,
mm1
RET
%macro
PRED8x8L_DOWN_LEFT
1
cglobal
pred8x8l_down_left_8
_
%1
,
4
,
4
%macro
PRED8x8L_DOWN_LEFT
0
cglobal
pred8x8l_down_left_8
,
4
,
4
sub
r0
,
r3
movq
mm0
,
[
r0
-
8
]
movq
mm3
,
[r0]
...
...
@@ -1467,7 +1473,7 @@ cglobal pred8x8l_down_left_8_%1, 4,4
lea
r2
,
[
r1
+
r3
*
2
]
movdqa
xmm1
,
xmm3
pslldq
xmm1
,
1
INIT_XMM
INIT_XMM
cpuname
PRED4x4_LOWPASS
xmm0
,
xmm1
,
xmm2
,
xmm3
,
xmm4
psrldq
xmm0
,
1
movq
[
r0
+
r3
*
1
]
,
xmm0
...
...
@@ -1489,20 +1495,20 @@ INIT_XMM
RET
%endmacro
INIT_MMX
INIT_MMX
sse2
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_DOWN_LEFT
sse2
INIT_MMX
PRED8x8L_DOWN_LEFT
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_DOWN_LEFT
ssse3
PRED8x8L_DOWN_LEFT
;-----------------------------------------------------------------------------
;void pred8x8l_down_right_mmxext(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred8x8l_down_right_8
_mmxext
,
4
,
5
cglobal
pred8x8l_down_right_8
,
4
,
5
sub
r0
,
r3
lea
r4
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -1633,8 +1639,8 @@ cglobal pred8x8l_down_right_8_mmxext, 4,5
movq
[
r0
+
r3
*
1
]
,
mm0
RET
%macro
PRED8x8L_DOWN_RIGHT
1
cglobal
pred8x8l_down_right_8
_
%1
,
4
,
5
%macro
PRED8x8L_DOWN_RIGHT
0
cglobal
pred8x8l_down_right_8
,
4
,
5
sub
r0
,
r3
lea
r4
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -1722,7 +1728,7 @@ cglobal pred8x8l_down_right_8_%1, 4,5
lea
r0
,
[
r2
+
r3
*
2
]
movdqa
xmm2
,
xmm3
psrldq
xmm2
,
1
INIT_XMM
INIT_XMM
cpuname
PRED4x4_LOWPASS
xmm0
,
xmm1
,
xmm2
,
xmm3
,
xmm4
movdqa
xmm1
,
xmm0
psrldq
xmm1
,
1
...
...
@@ -1743,20 +1749,20 @@ INIT_XMM
RET
%endmacro
INIT_MMX
INIT_MMX
sse2
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_DOWN_RIGHT
sse2
INIT_MMX
PRED8x8L_DOWN_RIGHT
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_DOWN_RIGHT
ssse3
PRED8x8L_DOWN_RIGHT
;-----------------------------------------------------------------------------
; void pred8x8l_vertical_right(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred8x8l_vertical_right_8
_mmxext
,
4
,
5
cglobal
pred8x8l_vertical_right_8
,
4
,
5
sub
r0
,
r3
lea
r4
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -1862,8 +1868,8 @@ cglobal pred8x8l_vertical_right_8_mmxext, 4,5
movq
[
r4
+
r3
*
2
]
,
mm5
RET
%macro
PRED8x8L_VERTICAL_RIGHT
1
cglobal
pred8x8l_vertical_right_8
_
%1
,
4
,
5
,
7
%macro
PRED8x8L_VERTICAL_RIGHT
0
cglobal
pred8x8l_vertical_right_8
,
4
,
5
,
7
; manually spill XMM registers for Win64 because
; the code here is initialized with INIT_MMX
WIN64_SPILL_XMM
7
...
...
@@ -1944,7 +1950,7 @@ cglobal pred8x8l_vertical_right_8_%1, 4,5,7
pslldq
xmm0
,
1
pslldq
xmm1
,
2
pavgb
xmm2
,
xmm0
INIT_XMM
INIT_XMM
cpuname
PRED4x4_LOWPASS
xmm4
,
xmm3
,
xmm1
,
xmm0
,
xmm5
pandn
xmm6
,
xmm4
movdqa
xmm5
,
xmm4
...
...
@@ -1973,19 +1979,19 @@ INIT_XMM
RET
%endmacro
INIT_MMX
INIT_MMX
sse2
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_VERTICAL_RIGHT
sse2
INIT_MMX
PRED8x8L_VERTICAL_RIGHT
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_VERTICAL_RIGHT
ssse3
PRED8x8L_VERTICAL_RIGHT
;-----------------------------------------------------------------------------
;void pred8x8l_vertical_left(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8L_VERTICAL_LEFT
1
cglobal
pred8x8l_vertical_left_8
_
%1
,
4
,
4
%macro
PRED8x8L_VERTICAL_LEFT
0
cglobal
pred8x8l_vertical_left_8
,
4
,
4
sub
r0
,
r3
movq
mm0
,
[
r0
-
8
]
movq
mm3
,
[r0]
...
...
@@ -2043,7 +2049,7 @@ cglobal pred8x8l_vertical_left_8_%1, 4,4
pslldq
xmm1
,
1
pavgb
xmm3
,
xmm2
lea
r2
,
[
r1
+
r3
*
2
]
INIT_XMM
INIT_XMM
cpuname
PRED4x4_LOWPASS
xmm0
,
xmm1
,
xmm2
,
xmm4
,
xmm5
psrldq
xmm0
,
1
movq
[
r0
+
r3
*
1
]
,
xmm3
...
...
@@ -2064,19 +2070,19 @@ INIT_XMM
RET
%endmacro
INIT_MMX
INIT_MMX
sse2
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_VERTICAL_LEFT
sse2
PRED8x8L_VERTICAL_LEFT
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
INIT_MMX
PRED8x8L_VERTICAL_LEFT
ssse3
PRED8x8L_VERTICAL_LEFT
;-----------------------------------------------------------------------------
; void pred8x8l_horizontal_up(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED8x8L_HORIZONTAL_UP
1
cglobal
pred8x8l_horizontal_up_8
_
%1
,
4
,
4
%macro
PRED8x8L_HORIZONTAL_UP
0
cglobal
pred8x8l_horizontal_up_8
,
4
,
4
sub
r0
,
r3
lea
r2
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -2153,19 +2159,20 @@ cglobal pred8x8l_horizontal_up_8_%1, 4,4
RET
%endmacro
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_HORIZONTAL_UP
mmxext
PRED8x8L_HORIZONTAL_UP
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_HORIZONTAL_UP
ssse3
PRED8x8L_HORIZONTAL_UP
;-----------------------------------------------------------------------------
;void pred8x8l_horizontal_down(uint8_t *src, int has_topleft, int has_topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred8x8l_horizontal_down_8
_mmxext
,
4
,
5
cglobal
pred8x8l_horizontal_down_8
,
4
,
5
sub
r0
,
r3
lea
r4
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -2279,8 +2286,8 @@ cglobal pred8x8l_horizontal_down_8_mmxext, 4,5
movq
[
r0
+
r3
*
1
]
,
mm3
RET
%macro
PRED8x8L_HORIZONTAL_DOWN
1
cglobal
pred8x8l_horizontal_down_8
_
%1
,
4
,
5
%macro
PRED8x8L_HORIZONTAL_DOWN
0
cglobal
pred8x8l_horizontal_down_8
,
4
,
5
sub
r0
,
r3
lea
r4
,
[
r0
+
r3
*
2
]
movq
mm0
,
[
r0
+
r3
*
1
-
8
]
...
...
@@ -2372,7 +2379,7 @@ cglobal pred8x8l_horizontal_down_8_%1, 4,5
movq2dq
xmm5
,
mm1
pslldq
xmm5
,
8
por
xmm1
,
xmm5
INIT_XMM
INIT_XMM
cpuname
lea
r2
,
[
r4
+
r3
*
2
]
movdqa
xmm2
,
xmm1
movdqa
xmm3
,
xmm1
...
...
@@ -2403,18 +2410,19 @@ INIT_XMM
RET
%endmacro
INIT_MMX
INIT_MMX
sse2
%define
PALIGNR
PALIGNR_MMX
PRED8x8L_HORIZONTAL_DOWN
sse2
INIT_MMX
PRED8x8L_HORIZONTAL_DOWN
INIT_MMX
ssse3
%define
PALIGNR
PALIGNR_SSSE3
PRED8x8L_HORIZONTAL_DOWN
ssse3
PRED8x8L_HORIZONTAL_DOWN
;-----------------------------------------------------------------------------
; void pred4x4_dc_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
cglobal
pred4x4_dc_8_mmxext
,
3
,
5
INIT_MMX
mmxext
cglobal
pred4x4_dc_8
,
3
,
5
pxor
mm7
,
mm7
mov
r4
,
r0
sub
r0
,
r2
...
...
@@ -2443,7 +2451,7 @@ cglobal pred4x4_dc_8_mmxext, 3,5
; void pred4x4_tm_vp8_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
%macro
PRED4x4_TM
_MMX
0
%macro
PRED4x4_TM
0
cglobal
pred4x4_tm_vp8_8
,
3
,
6
sub
r0
,
r2
pxor
mm7
,
mm7
...
...
@@ -2480,12 +2488,12 @@ cglobal pred4x4_tm_vp8_8, 3,6
%endmacro
INIT_MMX
mmx
PRED4x4_TM
_MMX
PRED4x4_TM
INIT_MMX
mmx2
PRED4x4_TM_MMX
INIT_MMX
PRED4x4_TM
cglobal
pred4x4_tm_vp8_8_ssse3
,
3
,
3
INIT_XMM
ssse3
cglobal
pred4x4_tm_vp8_8
,
3
,
3
sub
r0
,
r2
movq
mm6
,
[
tm_shuf
]
pxor
mm1
,
mm1
...
...
@@ -2524,8 +2532,8 @@ cglobal pred4x4_tm_vp8_8_ssse3, 3,3
; void pred4x4_vertical_vp8_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
cglobal
pred4x4_vertical_vp8_8
_mmxext
,
3
,
3
INIT_MMX
mmxext
cglobal
pred4x4_vertical_vp8_8
,
3
,
3
sub
r0
,
r2
movd
m1
,
[
r0
-
1
]
movd
m0
,
[r0]
...
...
@@ -2543,8 +2551,8 @@ cglobal pred4x4_vertical_vp8_8_mmxext, 3,3
;-----------------------------------------------------------------------------
; void pred4x4_down_left_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
cglobal
pred4x4_down_left_8
_mmxext
,
3
,
3
INIT_MMX
mmxext
cglobal
pred4x4_down_left_8
,
3
,
3
sub
r0
,
r2
movq
m1
,
[r0]
punpckldq
m1
,
[r1]
...
...
@@ -2570,8 +2578,8 @@ cglobal pred4x4_down_left_8_mmxext, 3,3
; void pred4x4_vertical_left_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
cglobal
pred4x4_vertical_left_8
_mmxext
,
3
,
3
INIT_MMX
mmxext
cglobal
pred4x4_vertical_left_8
,
3
,
3
sub
r0
,
r2
movq
m1
,
[r0]
punpckldq
m1
,
[r1]
...
...
@@ -2595,8 +2603,8 @@ cglobal pred4x4_vertical_left_8_mmxext, 3,3
; void pred4x4_horizontal_up_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
cglobal
pred4x4_horizontal_up_8
_mmxext
,
3
,
3
INIT_MMX
mmxext
cglobal
pred4x4_horizontal_up_8
,
3
,
3
sub
r0
,
r2
lea
r1
,
[
r0
+
r2
*
2
]
movd
m0
,
[
r0
+
r2
*
1
-
4
]
...
...
@@ -2628,9 +2636,9 @@ cglobal pred4x4_horizontal_up_8_mmxext, 3,3
; void pred4x4_horizontal_down_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred4x4_horizontal_down_8
_mmxext
,
3
,
3
cglobal
pred4x4_horizontal_down_8
,
3
,
3
sub
r0
,
r2
lea
r1
,
[
r0
+
r2
*
2
]
movh
m0
,
[
r0
-
4
]
; lt ..
...
...
@@ -2664,9 +2672,9 @@ cglobal pred4x4_horizontal_down_8_mmxext, 3,3
; void pred4x4_vertical_right_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred4x4_vertical_right_8
_mmxext
,
3
,
3
cglobal
pred4x4_vertical_right_8
,
3
,
3
sub
r0
,
r2
lea
r1
,
[
r0
+
r2
*
2
]
movh
m0
,
[r0]
; ........t3t2t1t0
...
...
@@ -2695,9 +2703,9 @@ cglobal pred4x4_vertical_right_8_mmxext, 3,3
; void pred4x4_down_right_mmxext(uint8_t *src, const uint8_t *topright, int stride)
;-----------------------------------------------------------------------------
INIT_MMX
INIT_MMX
mmxext
%define
PALIGNR
PALIGNR_MMX
cglobal
pred4x4_down_right_8
_mmxext
,
3
,
3
cglobal
pred4x4_down_right_8
,
3
,
3
sub
r0
,
r2
lea
r1
,
[
r0
+
r2
*
2
]
movq
m1
,
[
r1
-
8
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment