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@gramner.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
8f4a06faf4
commit
8c75ba55a4
@ -1410,15 +1410,18 @@ AVX_INSTR pfmul, 1, 0, 1
|
|||||||
%macro %1 4-7 %1, %2, %3
|
%macro %1 4-7 %1, %2, %3
|
||||||
%if cpuflag(xop)
|
%if cpuflag(xop)
|
||||||
v%5 %1, %2, %3, %4
|
v%5 %1, %2, %3, %4
|
||||||
%else
|
%elifnidn %1, %4
|
||||||
%6 %1, %2, %3
|
%6 %1, %2, %3
|
||||||
%7 %1, %4
|
%7 %1, %4
|
||||||
|
%else
|
||||||
|
%error non-xop emulation of ``%5 %1, %2, %3, %4'' is not supported
|
||||||
%endif
|
%endif
|
||||||
%endmacro
|
%endmacro
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
FMA_INSTR pmacsdd, pmulld, paddd
|
|
||||||
FMA_INSTR pmacsww, pmullw, paddw
|
FMA_INSTR pmacsww, pmullw, paddw
|
||||||
|
FMA_INSTR pmacsdd, pmulld, paddd ; sse4 emulation
|
||||||
|
FMA_INSTR pmacsdql, pmuldq, paddq ; sse4 emulation
|
||||||
FMA_INSTR pmadcswd, pmaddwd, paddd
|
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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user