]> git.sesse.net Git - x264/commitdiff
x86inc: Correctly warn on use of SSE2 instructions in SSE functions
authorChristophe Gisquet <christophe.gisquet@gmail.com>
Tue, 3 Feb 2015 19:40:41 +0000 (20:40 +0100)
committerAnton Mitrofanov <BugMaster@narod.ru>
Mon, 23 Feb 2015 10:34:51 +0000 (13:34 +0300)
SSE2 instructions that are XMM-implementations of pre-existing MMX/MMX2
instructions did not issue warnings when used in SSE functions. Handle
it by also checking the register type when such instructions are used.

common/x86/x86inc.asm

index c7ac95b70c34eaef31168fab746921ff4a48883e..d897fa4711770f5f46a2495700435c4eac1fd04c 100644 (file)
@@ -1070,6 +1070,8 @@ INIT_XMM
         %ifdef cpuname
             %if notcpuflag(%2)
                 %error use of ``%1'' %2 instruction in cpuname function: current_function
+            %elif cpuflags_%2 < cpuflags_sse && notcpuflag(sse2) && __sizeofreg > 8
+                %error use of ``%1'' sse2 instruction in cpuname function: current_function
             %endif
         %endif
     %endif
@@ -1206,7 +1208,7 @@ AVX_INSTR minsd, sse2, 1, 0, 1
 AVX_INSTR minss, sse, 1, 0, 1
 AVX_INSTR movapd, sse2
 AVX_INSTR movaps, sse
-AVX_INSTR movd
+AVX_INSTR movd, mmx
 AVX_INSTR movddup, sse3
 AVX_INSTR movdqa, sse2
 AVX_INSTR movdqu, sse2
@@ -1222,7 +1224,7 @@ AVX_INSTR movntdq, sse2
 AVX_INSTR movntdqa, sse4
 AVX_INSTR movntpd, sse2
 AVX_INSTR movntps, sse
-AVX_INSTR movq
+AVX_INSTR movq, mmx
 AVX_INSTR movsd, sse2, 1, 0, 0
 AVX_INSTR movshdup, sse3
 AVX_INSTR movsldup, sse3