[FFmpeg-cvslog] x86inc: warn if XOP integer FMA instruction emulation is impossible
Anton Mitrofanov
git at videolan.org
Wed Aug 12 12:36:32 CEST 2015
ffmpeg | branch: master | Anton Mitrofanov <BugMaster at narod.ru> | Sat Aug 1 17:27:31 2015 +0200| [8c75ba55a4367c854b577c849ea2195bd78c4c81] | committer: Anton Khirnov
x86inc: warn if XOP integer FMA instruction emulation is impossible
Emulation requires a temporary register if arguments 1 and 4 are the same; this
doesn't obey the semantics of the original instruction, so we can't emulate
that in x86inc.
Also add pmacsdql emulation.
Signed-off-by: Henrik Gramner <henrik at gramner.com>
Signed-off-by: Anton Khirnov <anton at khirnov.net>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8c75ba55a4367c854b577c849ea2195bd78c4c81
---
libavutil/x86/x86inc.asm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
index a6e1f33..4c0a4bd 100644
--- a/libavutil/x86/x86inc.asm
+++ b/libavutil/x86/x86inc.asm
@@ -1410,15 +1410,18 @@ AVX_INSTR pfmul, 1, 0, 1
%macro %1 4-7 %1, %2, %3
%if cpuflag(xop)
v%5 %1, %2, %3, %4
- %else
+ %elifnidn %1, %4
%6 %1, %2, %3
%7 %1, %4
+ %else
+ %error non-xop emulation of ``%5 %1, %2, %3, %4'' is not supported
%endif
%endmacro
%endmacro
-FMA_INSTR pmacsdd, pmulld, paddd
FMA_INSTR pmacsww, pmullw, paddw
+FMA_INSTR pmacsdd, pmulld, paddd ; sse4 emulation
+FMA_INSTR pmacsdql, pmuldq, paddq ; sse4 emulation
FMA_INSTR pmadcswd, pmaddwd, paddd
; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf.
More information about the ffmpeg-cvslog
mailing list