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
f469094c
Commit
f469094c
authored
Sep 21, 2006
by
Loren Merritt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tweak ff_imdct_calc_3dn2
Originally committed as revision 6312 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
ebbafcb4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
17 deletions
+17
-17
fft_3dn2.c
libavcodec/i386/fft_3dn2.c
+17
-17
No files found.
libavcodec/i386/fft_3dn2.c
View file @
f469094c
...
@@ -177,15 +177,13 @@ void ff_imdct_calc_3dn2(MDCTContext *s, FFTSample *output,
...
@@ -177,15 +177,13 @@ void ff_imdct_calc_3dn2(MDCTContext *s, FFTSample *output,
);
);
}
}
z
+=
n
8
;
k
=
n
-
8
;
asm
volatile
(
"movd %0, %%mm7"
::
"r"
(
1
<<
31
));
asm
volatile
(
"movd %0, %%mm7"
::
"r"
(
1
<<
31
));
for
(
k
=
0
;
k
<
n8
;
k
++
)
{
asm
volatile
(
asm
volatile
(
"1:
\n\t
"
"movq %0, %%mm0
\n\t
"
"movq (%4,%0), %%mm0
\n\t
"
// z[n8+k]
"pswapd %1, %%mm1
\n\t
"
"neg %0
\n\t
"
::
"m"
(
z
[
k
]),
"m"
(
z
[
-
1
-
k
])
"pswapd -8(%4,%0), %%mm1
\n\t
"
// z[n8-1-k]
);
asm
volatile
(
"movq %%mm0, %%mm2
\n\t
"
"movq %%mm0, %%mm2
\n\t
"
"pxor %%mm7, %%mm2
\n\t
"
"pxor %%mm7, %%mm2
\n\t
"
"punpckldq %%mm1, %%mm2
\n\t
"
"punpckldq %%mm1, %%mm2
\n\t
"
...
@@ -194,15 +192,17 @@ void ff_imdct_calc_3dn2(MDCTContext *s, FFTSample *output,
...
@@ -194,15 +192,17 @@ void ff_imdct_calc_3dn2(MDCTContext *s, FFTSample *output,
"pswapd %%mm0, %%mm4
\n\t
"
"pswapd %%mm0, %%mm4
\n\t
"
"pxor %%mm7, %%mm0
\n\t
"
"pxor %%mm7, %%mm0
\n\t
"
"pxor %%mm7, %%mm4
\n\t
"
"pxor %%mm7, %%mm4
\n\t
"
"movq %%mm0, %0
\n\t
"
// { -z[n8+k].im, z[n8-1-k].re }
"movq %%mm3, -8(%3,%0)
\n\t
"
// output[n-2-2*k] = { z[n8-1-k].im, -z[n8+k].re }
"movq %%mm4, %1
\n\t
"
// { -z[n8-1-k].re, z[n8+k].im }
"movq %%mm4, -8(%2,%0)
\n\t
"
// output[n2-2-2*k]= { -z[n8-1-k].re, z[n8+k].im }
"movq %%mm2, %2
\n\t
"
// { -z[n8+k].re, z[n8-1-k].im }
"neg %0
\n\t
"
"movq %%mm3, %3
\n\t
"
// { z[n8-1-k].im, -z[n8+k].re }
"movq %%mm0, (%1,%0)
\n\t
"
// output[2*k] = { -z[n8+k].im, z[n8-1-k].re }
:
"=m"
(
output
[
2
*
k
]),
"=m"
(
output
[
n2
-
2
-
2
*
k
]),
"movq %%mm2, (%2,%0)
\n\t
"
// output[n2+2*k] = { -z[n8+k].re, z[n8-1-k].im }
"=m"
(
output
[
n2
+
2
*
k
]),
"=m"
(
output
[
n
-
2
-
2
*
k
])
"sub $8, %0
\n\t
"
::
"memory"
"jge 1b
\n\t
"
);
:
"+r"
(
k
)
}
:
"r"
(
output
),
"r"
(
output
+
n2
),
"r"
(
output
+
n
),
"r"
(
z
+
n8
)
:
"memory"
);
asm
volatile
(
"femms"
);
asm
volatile
(
"femms"
);
}
}
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