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
c6908d6b
Commit
c6908d6b
authored
Nov 12, 2012
by
Jason Garrett-Glaser
Committed by
Derek Buitenhuis
Oct 14, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x86inc: FMA3/4 Support
Signed-off-by:
Derek Buitenhuis
<
derek.buitenhuis@gmail.com
>
parent
20689570
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
1 deletion
+45
-1
x86inc.asm
libavutil/x86/x86inc.asm
+42
-0
x86util.asm
libavutil/x86/x86util.asm
+3
-1
No files found.
libavutil/x86/x86inc.asm
View file @
c6908d6b
...
@@ -1417,3 +1417,45 @@ FMA_INSTR pmadcswd, pmaddwd, paddd
...
@@ -1417,3 +1417,45 @@ FMA_INSTR pmadcswd, pmaddwd, paddd
; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf.
; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf.
; This lets us use tzcnt without bumping the yasm version requirement yet.
; This lets us use tzcnt without bumping the yasm version requirement yet.
%define
tzcnt
rep
bsf
%define
tzcnt
rep
bsf
; convert FMA4 to FMA3 if possible
%macro
FMA4_INSTR
4
%
macro
%1
4
-
8
%1
,
%2
,
%3
,
%4
%
if
cpuflag
(
fma4
)
v%5
%1
,
%2
,
%3
,
%4
%
elifidn
%1
,
%2
v%6
%1
,
%4
,
%3
; %1 = %1 * %3 + %4
%
elifidn
%1
,
%3
v%7
%1
,
%2
,
%4
; %1 = %2 * %1 + %4
%
elifidn
%1
,
%4
v%8
%1
,
%2
,
%3
; %1 = %2 * %3 + %1
%
else
%
error
fma3
emulation
of
``
%5
%1
,
%2
,
%3
,
%4
''
is
not
supported
%
endif
%
endmacro
%endmacro
FMA4_INSTR
fmaddpd
,
fmadd132pd
,
fmadd213pd
,
fmadd231pd
FMA4_INSTR
fmaddps
,
fmadd132ps
,
fmadd213ps
,
fmadd231ps
FMA4_INSTR
fmaddsd
,
fmadd132sd
,
fmadd213sd
,
fmadd231sd
FMA4_INSTR
fmaddss
,
fmadd132ss
,
fmadd213ss
,
fmadd231ss
FMA4_INSTR
fmaddsubpd
,
fmaddsub132pd
,
fmaddsub213pd
,
fmaddsub231pd
FMA4_INSTR
fmaddsubps
,
fmaddsub132ps
,
fmaddsub213ps
,
fmaddsub231ps
FMA4_INSTR
fmsubaddpd
,
fmsubadd132pd
,
fmsubadd213pd
,
fmsubadd231pd
FMA4_INSTR
fmsubaddps
,
fmsubadd132ps
,
fmsubadd213ps
,
fmsubadd231ps
FMA4_INSTR
fmsubpd
,
fmsub132pd
,
fmsub213pd
,
fmsub231pd
FMA4_INSTR
fmsubps
,
fmsub132ps
,
fmsub213ps
,
fmsub231ps
FMA4_INSTR
fmsubsd
,
fmsub132sd
,
fmsub213sd
,
fmsub231sd
FMA4_INSTR
fmsubss
,
fmsub132ss
,
fmsub213ss
,
fmsub231ss
FMA4_INSTR
fnmaddpd
,
fnmadd132pd
,
fnmadd213pd
,
fnmadd231pd
FMA4_INSTR
fnmaddps
,
fnmadd132ps
,
fnmadd213ps
,
fnmadd231ps
FMA4_INSTR
fnmaddsd
,
fnmadd132sd
,
fnmadd213sd
,
fnmadd231sd
FMA4_INSTR
fnmaddss
,
fnmadd132ss
,
fnmadd213ss
,
fnmadd231ss
FMA4_INSTR
fnmsubpd
,
fnmsub132pd
,
fnmsub213pd
,
fnmsub231pd
FMA4_INSTR
fnmsubps
,
fnmsub132ps
,
fnmsub213ps
,
fnmsub231ps
FMA4_INSTR
fnmsubsd
,
fnmsub132sd
,
fnmsub213sd
,
fnmsub231sd
FMA4_INSTR
fnmsubss
,
fnmsub132ss
,
fnmsub213ss
,
fnmsub231ss
libavutil/x86/x86util.asm
View file @
c6908d6b
...
@@ -668,7 +668,9 @@
...
@@ -668,7 +668,9 @@
; Wrapper for non-FMA version of fmaddps
; Wrapper for non-FMA version of fmaddps
%macro
FMULADD_PS
5
%macro
FMULADD_PS
5
%
ifidn
%1
,
%4
%
if
cpuflag
(
fma3
)
||
cpuflag
(
fma4
)
fmaddps
%1
,
%2
,
%3
,
%4
%
elifidn
%1
,
%4
mulps
%5
,
%2
,
%3
mulps
%5
,
%2
,
%3
addps
%1
,
%4
,
%5
addps
%1
,
%4
,
%5
%
else
%
else
...
...
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