From: Henrik Gramner Date: Sat, 23 May 2015 11:38:05 +0000 (+0200) Subject: x86inc: Disable vpbroadcastq workaround in newer yasm versions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b615f82e45c88b7915c5571ad09fa65a0b6130d7;p=libx264 x86inc: Disable vpbroadcastq workaround in newer yasm versions The bug was fixed in 1.3.0, so only perform the workaround in earlier versions. --- diff --git a/common/x86/x86inc.asm b/common/x86/x86inc.asm index d897fa47..668902e9 100644 --- a/common/x86/x86inc.asm +++ b/common/x86/x86inc.asm @@ -1470,13 +1470,13 @@ FMA4_INSTR fnmsubps, fnmsub132ps, fnmsub213ps, fnmsub231ps FMA4_INSTR fnmsubsd, fnmsub132sd, fnmsub213sd, fnmsub231sd FMA4_INSTR fnmsubss, fnmsub132ss, fnmsub213ss, fnmsub231ss -; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug -%if ARCH_X86_64 == 0 -%macro vpbroadcastq 2 -%if sizeof%1 == 16 - movddup %1, %2 -%else - vbroadcastsd %1, %2 -%endif -%endmacro +; workaround: vpbroadcastq is broken in x86_32 due to a yasm bug (fixed in 1.3.0) +%if __YASM_VERSION_ID__ < 0x01030000 && ARCH_X86_64 == 0 + %macro vpbroadcastq 2 + %if sizeof%1 == 16 + movddup %1, %2 + %else + vbroadcastsd %1, %2 + %endif + %endmacro %endif