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
307eb1a8
Commit
307eb1a8
authored
Jul 27, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: vp8dsp: port FILTER_BILINEAR macro to cpuflags
parent
994c4bc1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
77 deletions
+66
-77
vp8dsp.asm
libavcodec/x86/vp8dsp.asm
+66
-77
No files found.
libavcodec/x86/vp8dsp.asm
View file @
307eb1a8
...
...
@@ -664,6 +664,37 @@ INIT_XMM sse2
FILTER_V
8
%macro
FILTER_BILINEAR
1
%if
cpuflag
(
ssse3
)
cglobal
put_vp8_bilinear
%1
_v
,
7
,
7
,
5
,
dst
,
dststride
,
src
,
srcstride
,
height
,
picreg
,
my
shl
myd
,
4
%ifdef
PIC
lea
picregq
,
[
bilinear_filter_vb_m
]
%endif
pxor
m4
,
m4
mova
m3
,
[
bilinear_filter_vb
+
myq
-
16
]
.
nextrow
:
movh
m0
,
[
srcq
+
srcstrideq
*
0
]
movh
m1
,
[
srcq
+
srcstrideq
*
1
]
movh
m2
,
[
srcq
+
srcstrideq
*
2
]
punpcklbw
m0
,
m1
punpcklbw
m1
,
m2
pmaddubsw
m0
,
m3
pmaddubsw
m1
,
m3
psraw
m0
,
2
psraw
m1
,
2
pavgw
m0
,
m4
pavgw
m1
,
m4
%if
mmsize
==
8
packuswb
m0
,
m0
packuswb
m1
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movh
[
dstq
+
dststrideq
*
1
]
,
m1
%else
packuswb
m0
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movhps
[
dstq
+
dststrideq
*
1
]
,
m0
%endif
%else
; cpuflag(ssse3)
cglobal
put_vp8_bilinear
%1
_v
,
7
,
7
,
7
,
dst
,
dststride
,
src
,
srcstride
,
height
,
picreg
,
my
shl
myd
,
4
%ifdef
PIC
...
...
@@ -701,6 +732,7 @@ cglobal put_vp8_bilinear%1_v, 7, 7, 7, dst, dststride, src, srcstride, height, p
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movhps
[
dstq
+
dststrideq
*
1
]
,
m0
%endif
%endif
; cpuflag(ssse3)
lea
dstq
,
[
dstq
+
dststrideq
*
2
]
lea
srcq
,
[
srcq
+
srcstrideq
*
2
]
...
...
@@ -708,6 +740,37 @@ cglobal put_vp8_bilinear%1_v, 7, 7, 7, dst, dststride, src, srcstride, height, p
jg
.
nextrow
REP_RET
%if
cpuflag
(
ssse3
)
cglobal
put_vp8_bilinear
%1
_h
,
6
,
6
+
npicregs
,
5
,
dst
,
dststride
,
src
,
srcstride
,
height
,
mx
,
picreg
shl
mxd
,
4
%ifdef
PIC
lea
picregq
,
[
bilinear_filter_vb_m
]
%endif
pxor
m4
,
m4
mova
m2
,
[
filter_h2_shuf
]
mova
m3
,
[
bilinear_filter_vb
+
mxq
-
16
]
.
nextrow
:
movu
m0
,
[
srcq
+
srcstrideq
*
0
]
movu
m1
,
[
srcq
+
srcstrideq
*
1
]
pshufb
m0
,
m2
pshufb
m1
,
m2
pmaddubsw
m0
,
m3
pmaddubsw
m1
,
m3
psraw
m0
,
2
psraw
m1
,
2
pavgw
m0
,
m4
pavgw
m1
,
m4
%if
mmsize
==
8
packuswb
m0
,
m0
packuswb
m1
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movh
[
dstq
+
dststrideq
*
1
]
,
m1
%else
packuswb
m0
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movhps
[
dstq
+
dststrideq
*
1
]
,
m0
%endif
%else
; cpuflag(ssse3)
cglobal
put_vp8_bilinear
%1
_h
,
6
,
6
+
npicregs
,
7
,
dst
,
dststride
,
src
,
srcstride
,
height
,
mx
,
picreg
shl
mxd
,
4
%ifdef
PIC
...
...
@@ -746,6 +809,7 @@ cglobal put_vp8_bilinear%1_h, 6, 6 + npicregs, 7, dst, dststride, src, srcstride
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movhps
[
dstq
+
dststrideq
*
1
]
,
m0
%endif
%endif
; cpuflag(ssse3)
lea
dstq
,
[
dstq
+
dststrideq
*
2
]
lea
srcq
,
[
srcq
+
srcstrideq
*
2
]
...
...
@@ -758,85 +822,10 @@ INIT_MMX mmxext
FILTER_BILINEAR
4
INIT_XMM
sse2
FILTER_BILINEAR
8
%macro
FILTER_BILINEAR_SSSE3
1
cglobal
put_vp8_bilinear
%1
_v
,
7
,
7
,
5
,
dst
,
dststride
,
src
,
srcstride
,
height
,
picreg
,
my
shl
myd
,
4
%ifdef
PIC
lea
picregq
,
[
bilinear_filter_vb_m
]
%endif
pxor
m4
,
m4
mova
m3
,
[
bilinear_filter_vb
+
myq
-
16
]
.
nextrow
:
movh
m0
,
[
srcq
+
srcstrideq
*
0
]
movh
m1
,
[
srcq
+
srcstrideq
*
1
]
movh
m2
,
[
srcq
+
srcstrideq
*
2
]
punpcklbw
m0
,
m1
punpcklbw
m1
,
m2
pmaddubsw
m0
,
m3
pmaddubsw
m1
,
m3
psraw
m0
,
2
psraw
m1
,
2
pavgw
m0
,
m4
pavgw
m1
,
m4
%if
mmsize
==
8
packuswb
m0
,
m0
packuswb
m1
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movh
[
dstq
+
dststrideq
*
1
]
,
m1
%else
packuswb
m0
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movhps
[
dstq
+
dststrideq
*
1
]
,
m0
%endif
lea
dstq
,
[
dstq
+
dststrideq
*
2
]
lea
srcq
,
[
srcq
+
srcstrideq
*
2
]
sub
heightd
,
2
jg
.
nextrow
REP_RET
cglobal
put_vp8_bilinear
%1
_h
,
6
,
6
+
npicregs
,
5
,
dst
,
dststride
,
src
,
srcstride
,
height
,
mx
,
picreg
shl
mxd
,
4
%ifdef
PIC
lea
picregq
,
[
bilinear_filter_vb_m
]
%endif
pxor
m4
,
m4
mova
m2
,
[
filter_h2_shuf
]
mova
m3
,
[
bilinear_filter_vb
+
mxq
-
16
]
.
nextrow
:
movu
m0
,
[
srcq
+
srcstrideq
*
0
]
movu
m1
,
[
srcq
+
srcstrideq
*
1
]
pshufb
m0
,
m2
pshufb
m1
,
m2
pmaddubsw
m0
,
m3
pmaddubsw
m1
,
m3
psraw
m0
,
2
psraw
m1
,
2
pavgw
m0
,
m4
pavgw
m1
,
m4
%if
mmsize
==
8
packuswb
m0
,
m0
packuswb
m1
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movh
[
dstq
+
dststrideq
*
1
]
,
m1
%else
packuswb
m0
,
m1
movh
[
dstq
+
dststrideq
*
0
]
,
m0
movhps
[
dstq
+
dststrideq
*
1
]
,
m0
%endif
lea
dstq
,
[
dstq
+
dststrideq
*
2
]
lea
srcq
,
[
srcq
+
srcstrideq
*
2
]
sub
heightd
,
2
jg
.
nextrow
REP_RET
%endmacro
INIT_MMX
ssse3
FILTER_BILINEAR
_SSSE3
4
FILTER_BILINEAR
4
INIT_XMM
ssse3
FILTER_BILINEAR
_SSSE3
8
FILTER_BILINEAR
8
INIT_MMX
mmx
cglobal
put_vp8_pixels8
,
5
,
5
,
0
,
dst
,
dststride
,
src
,
srcstride
,
height
...
...
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