Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
FFmpeg
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
libremedia
Tethys
FFmpeg
Commits
28c8e288
Commit
28c8e288
authored
12 years ago
by
Diego Biurrun
Browse files
Options
Downloads
Patches
Plain Diff
x86: h264_chromamc: port to cpuflags
parent
b491da18
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
libavcodec/x86/h264_chromamc.asm
+44
-41
44 additions, 41 deletions
libavcodec/x86/h264_chromamc.asm
with
44 additions
and
41 deletions
libavcodec/x86/h264_chromamc.asm
+
44
−
41
View file @
28c8e288
...
...
@@ -89,7 +89,7 @@ SECTION .text
jne
.next4rows
%endmacro
%macro chroma_mc8_mmx_func 3
%macro chroma_mc8_mmx_func
2-
3
%ifidn %2, rv40
%ifdef PIC
%define rnd_1d_rv40 r8
...
...
@@ -103,9 +103,9 @@ SECTION .text
%else
%define extra_regs 0
%endif
; rv40
; put/avg_h264_chroma_mc8_
mmx_
*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/,
;
int stride, int h, int mx, int my)
cglobal
%
1
_
%
2
_chroma_mc8
_
%
3
,
6
,
7
+
extra_regs
,
0
; put/avg_h264_chroma_mc8_*(uint8_t *dst /*align 8*/, uint8_t *src /*align 1*/,
; int stride, int h, int mx, int my)
cglobal
%
1
_
%
2
_chroma_mc8
%
3
,
6
,
7
+
extra_regs
,
0
%if ARCH_X86_64
movsxd
r2
,
r2d
%endif
...
...
@@ -282,14 +282,14 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7 + extra_regs, 0
RET
%endmacro
%macro chroma_mc4_mmx_func
3
%macro chroma_mc4_mmx_func
2
%define extra_regs 0
%ifidn %2, rv40
%ifdef PIC
%define extra_regs 1
%endif
; PIC
%endif
; rv40
cglobal
%
1
_
%
2
_chroma_mc4
_
%
3
,
6
,
6
+
extra_regs
,
0
cglobal
%
1
_
%
2
_chroma_mc4
,
6
,
6
+
extra_regs
,
0
%if ARCH_X86_64
movsxd
r2
,
r2d
%endif
...
...
@@ -373,8 +373,8 @@ cglobal %1_%2_chroma_mc4_%3, 6, 6 + extra_regs, 0
REP_RET
%endmacro
%macro chroma_mc2_mmx_func
3
cglobal
%
1
_
%
2
_chroma_mc2
_
%
3
,
6
,
7
,
0
%macro chroma_mc2_mmx_func
2
cglobal
%
1
_
%
2
_chroma_mc2
,
6
,
7
,
0
%if ARCH_X86_64
movsxd
r2
,
r2d
%endif
...
...
@@ -434,35 +434,38 @@ cglobal %1_%2_chroma_mc2_%3, 6, 7, 0
PAVG
%
1
,
%
2
%endmacro
INIT_MMX
INIT_MMX
mmx
%define CHROMAMC_AVG NOTHING
%define CHROMAMC_AVG4 NOTHING
chroma_mc8_mmx_func
put
,
h264
,
rnd_mmx
chroma_mc8_mmx_func
put
,
vc1
,
nornd_mmx
chroma_mc8_mmx_func
put
,
rv40
,
mmx
chroma_mc4_mmx_func
put
,
h264
,
mmx
chroma_mc4_mmx_func
put
,
rv40
,
mmx
chroma_mc2_mmx_func
put
,
h264
,
mmxext
chroma_mc8_mmx_func
put
,
h264
,
_rnd
chroma_mc8_mmx_func
put
,
vc1
,
_nornd
chroma_mc8_mmx_func
put
,
rv40
chroma_mc4_mmx_func
put
,
h264
chroma_mc4_mmx_func
put
,
rv40
INIT_MMX
mmxext
chroma_mc2_mmx_func
put
,
h264
%define CHROMAMC_AVG DIRECT_AVG
%define CHROMAMC_AVG4 COPY_AVG
%define PAVG pavgb
chroma_mc8_mmx_func
avg
,
h264
,
rnd
_mmxext
chroma_mc8_mmx_func
avg
,
vc1
,
nornd
_mmxext
chroma_mc8_mmx_func
avg
,
rv40
,
mmxext
chroma_mc4_mmx_func
avg
,
h264
,
mmxext
chroma_mc4_mmx_func
avg
,
rv40
,
mmxext
chroma_mc2_mmx_func
avg
,
h264
,
mmxext
chroma_mc8_mmx_func
avg
,
h264
,
_
rnd
chroma_mc8_mmx_func
avg
,
vc1
,
_
nornd
chroma_mc8_mmx_func
avg
,
rv40
chroma_mc4_mmx_func
avg
,
h264
chroma_mc4_mmx_func
avg
,
rv40
chroma_mc2_mmx_func
avg
,
h264
%define PAVG pavgusb
chroma_mc8_mmx_func
avg
,
h264
,
rnd_3dnow
chroma_mc8_mmx_func
avg
,
vc1
,
nornd_3dnow
chroma_mc8_mmx_func
avg
,
rv40
,
3
dnow
chroma_mc4_mmx_func
avg
,
h264
,
3
dnow
chroma_mc4_mmx_func
avg
,
rv40
,
3
dnow
%macro chroma_mc8_ssse3_func 3
cglobal
%
1
_
%
2
_chroma_mc8_
%
3
,
6
,
7
,
8
INIT_MMX
3
dnow
chroma_mc8_mmx_func
avg
,
h264
,
_rnd
chroma_mc8_mmx_func
avg
,
vc1
,
_nornd
chroma_mc8_mmx_func
avg
,
rv40
chroma_mc4_mmx_func
avg
,
h264
chroma_mc4_mmx_func
avg
,
rv40
%macro chroma_mc8_ssse3_func 2-3
cglobal
%
1
_
%
2
_chroma_mc8
%
3
,
6
,
7
,
8
%if ARCH_X86_64
movsxd
r2
,
r2d
%endif
...
...
@@ -609,8 +612,8 @@ cglobal %1_%2_chroma_mc8_%3, 6, 7, 8
REP_RET
%endmacro
%macro chroma_mc4_ssse3_func
3
cglobal
%
1
_
%
2
_chroma_mc4
_
%
3
,
6
,
7
,
0
%macro chroma_mc4_ssse3_func
2
cglobal
%
1
_
%
2
_chroma_mc4
,
6
,
7
,
0
%if ARCH_X86_64
movsxd
r2
,
r2d
%endif
...
...
@@ -663,16 +666,16 @@ cglobal %1_%2_chroma_mc4_%3, 6, 7, 0
%endmacro
%define CHROMAMC_AVG NOTHING
INIT_XMM
chroma_mc8_ssse3_func
put
,
h264
,
rnd
_ssse3
chroma_mc8_ssse3_func
put
,
vc1
,
nornd
_ssse3
INIT_MMX
chroma_mc4_ssse3_func
put
,
h264
,
ss
se3
INIT_XMM
ss
se3
chroma_mc8_ssse3_func
put
,
h264
,
_
rnd
chroma_mc8_ssse3_func
put
,
vc1
,
_
nornd
INIT_MMX
ss
se3
chroma_mc4_ssse3_func
put
,
h264
%define CHROMAMC_AVG DIRECT_AVG
%define PAVG pavgb
INIT_XMM
chroma_mc8_ssse3_func
avg
,
h264
,
rnd
_ssse3
chroma_mc8_ssse3_func
avg
,
vc1
,
nornd
_ssse3
INIT_MMX
chroma_mc4_ssse3_func
avg
,
h264
,
ss
se3
INIT_XMM
ss
se3
chroma_mc8_ssse3_func
avg
,
h264
,
_
rnd
chroma_mc8_ssse3_func
avg
,
vc1
,
_
nornd
INIT_MMX
ss
se3
chroma_mc4_ssse3_func
avg
,
h264
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment