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
0a7a94f2
Commit
0a7a94f2
authored
Aug 01, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86: Refactor PSWAPD fallback implementations and port to cpuflags
parent
9a07c133
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
29 deletions
+16
-29
fft.asm
libavcodec/x86/fft.asm
+2
-14
fmtconvert.asm
libavcodec/x86/fmtconvert.asm
+2
-15
x86util.asm
libavutil/x86/x86util.asm
+12
-0
No files found.
libavcodec/x86/fft.asm
View file @
0a7a94f2
...
@@ -105,7 +105,8 @@ SECTION_TEXT
...
@@ -105,7 +105,8 @@ SECTION_TEXT
pfadd
%5
,
%4
; {t6,t5}
pfadd
%5
,
%4
; {t6,t5}
pxor
%3
,
[
ps_m1p1
]
; {t8,t7}
pxor
%3
,
[
ps_m1p1
]
; {t8,t7}
mova
%6
,
%1
mova
%6
,
%1
PSWAPD
%3
,
%3
movd
[
r0
+
12
]
,
%3
punpckhdq
%3
,
[
r0
+
8
]
pfadd
%1
,
%5
; {r0,i0}
pfadd
%1
,
%5
; {r0,i0}
pfsub
%6
,
%5
; {r2,i2}
pfsub
%6
,
%5
; {r2,i2}
mova
%4
,
%2
mova
%4
,
%2
...
@@ -498,19 +499,6 @@ fft8 %+ SUFFIX:
...
@@ -498,19 +499,6 @@ fft8 %+ SUFFIX:
%endmacro
%endmacro
%if
ARCH_X86_32
%if
ARCH_X86_32
%macro
PSWAPD
2
%if
cpuflag
(
3
dnowext
)
pswapd
%1
,
%2
%elifidn
%1
,
%2
movd
[
r0
+
12
]
,
%1
punpckhdq
%1
,
[
r0
+
8
]
%else
movq
%1
,
%2
psrlq
%1
,
32
punpckldq
%1
,
%2
%endif
%endmacro
INIT_MMX
3
dnowext
INIT_MMX
3
dnowext
FFT48_3DNOW
FFT48_3DNOW
...
...
libavcodec/x86/fmtconvert.asm
View file @
0a7a94f2
...
@@ -246,16 +246,6 @@ FLOAT_TO_INT16_INTERLEAVE2
...
@@ -246,16 +246,6 @@ FLOAT_TO_INT16_INTERLEAVE2
INIT_XMM
sse2
INIT_XMM
sse2
FLOAT_TO_INT16_INTERLEAVE2
FLOAT_TO_INT16_INTERLEAVE2
%macro
PSWAPD_SSE
2
pshufw
%1
,
%2
,
0x4e
%endmacro
%macro
PSWAPD_3DNOW
2
movq
%1
,
%2
psrlq
%1
,
32
punpckldq
%1
,
%2
%endmacro
%macro
FLOAT_TO_INT16_INTERLEAVE6
0
%macro
FLOAT_TO_INT16_INTERLEAVE6
0
; void float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len)
; void float_to_int16_interleave6_sse(int16_t *dst, const float **src, int len)
cglobal
float_to_int16_interleave6
,
2
,
8
,
0
,
dst
,
src
,
src1
,
src2
,
src3
,
src4
,
src5
,
len
cglobal
float_to_int16_interleave6
,
2
,
8
,
0
,
dst
,
src
,
src1
,
src2
,
src3
,
src4
,
src5
,
len
...
@@ -285,11 +275,11 @@ cglobal float_to_int16_interleave6, 2, 8, 0, dst, src, src1, src2, src3, src4, s
...
@@ -285,11 +275,11 @@ cglobal float_to_int16_interleave6, 2, 8, 0, dst, src, src1, src2, src3, src4, s
packssdw
mm0
,
mm3
packssdw
mm0
,
mm3
packssdw
mm1
,
mm4
packssdw
mm1
,
mm4
packssdw
mm2
,
mm5
packssdw
mm2
,
mm5
pswapd
mm3
,
mm0
PSWAPD
mm3
,
mm0
punpcklwd
mm0
,
mm1
punpcklwd
mm0
,
mm1
punpckhwd
mm1
,
mm2
punpckhwd
mm1
,
mm2
punpcklwd
mm2
,
mm3
punpcklwd
mm2
,
mm3
pswapd
mm3
,
mm0
PSWAPD
mm3
,
mm0
punpckldq
mm0
,
mm2
punpckldq
mm0
,
mm2
punpckhdq
mm2
,
mm1
punpckhdq
mm2
,
mm1
punpckldq
mm1
,
mm3
punpckldq
mm1
,
mm3
...
@@ -305,12 +295,9 @@ cglobal float_to_int16_interleave6, 2, 8, 0, dst, src, src1, src2, src3, src4, s
...
@@ -305,12 +295,9 @@ cglobal float_to_int16_interleave6, 2, 8, 0, dst, src, src1, src2, src3, src4, s
%endmacro
; FLOAT_TO_INT16_INTERLEAVE6
%endmacro
; FLOAT_TO_INT16_INTERLEAVE6
INIT_MMX
sse
INIT_MMX
sse
%define
pswapd
PSWAPD_SSE
FLOAT_TO_INT16_INTERLEAVE6
FLOAT_TO_INT16_INTERLEAVE6
INIT_MMX
3
dnow
INIT_MMX
3
dnow
%define
pswapd
PSWAPD_3DNOW
FLOAT_TO_INT16_INTERLEAVE6
FLOAT_TO_INT16_INTERLEAVE6
%undef
pswapd
INIT_MMX
3
dnowext
INIT_MMX
3
dnowext
FLOAT_TO_INT16_INTERLEAVE6
FLOAT_TO_INT16_INTERLEAVE6
...
...
libavutil/x86/x86util.asm
View file @
0a7a94f2
...
@@ -319,6 +319,18 @@
...
@@ -319,6 +319,18 @@
%
endif
%
endif
%endmacro
%endmacro
%macro
PSWAPD
2
%if
cpuflag
(
mmxext
)
pshufw
%1
,
%2
,
q1032
%elif
cpuflag
(
3
dnowext
)
pswapd
%1
,
%2
%elif
cpuflag
(
3
dnow
)
movq
%1
,
%2
psrlq
%1
,
32
punpckldq
%1
,
%2
%endif
%endmacro
%macro
DEINTB
5
; mask, reg1, mask, reg2, optional src to fill masks from
%macro
DEINTB
5
; mask, reg1, mask, reg2, optional src to fill masks from
%ifnum
%5
%ifnum
%5
pand
m%3
,
m%5
,
m%4
; src .. y6 .. y4
pand
m%3
,
m%5
,
m%4
; src .. y6 .. y4
...
...
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