[PATCH 28/42] i386: Make _mm_empty () as NOP when MMX is disabled

H.J. Lu hjl.tools@gmail.com
Fri Feb 15 14:04:00 GMT 2019


With SSE emulation of MMX intrinsics, we should make _mm_empty () as NOP
when MMX is disabled.

	PR target/89021
	* config/i386/mmx.md (EMMS): Also allow TARGET_MMX_WITH_SSE.
	(mmx_<emms>): Generate "<emms>" only when MMX is enabled.
---
 gcc/config/i386/mmx.md | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index d662663a445..eaca71d5750 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -1839,7 +1839,7 @@
    (set_attr "mode" "DI")])
 
 (define_int_iterator EMMS
-  [(UNSPECV_EMMS "TARGET_MMX")
+  [(UNSPECV_EMMS "TARGET_MMX || TARGET_MMX_WITH_SSE")
    (UNSPECV_FEMMS "TARGET_3DNOW")])
 
 (define_int_attr emms
@@ -1865,7 +1865,9 @@
    (clobber (reg:DI MM6_REG))
    (clobber (reg:DI MM7_REG))]
   ""
-  "<emms>"
+{
+  return TARGET_MMX ? "<emms>" : "";
+}
   [(set_attr "type" "mmx")
    (set_attr "modrm" "0")
    (set_attr "memory" "none")])
-- 
2.20.1



More information about the Gcc-patches mailing list