Commit f9a8f6d9 by Ian Lance Taylor Committed by Ian Lance Taylor

xmmintrin.h (_mm_pause): Move out of scope of pragma target("sse").

gcc/:
	* config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
	target("sse").
testsuite/:
	* gcc.target/i386/pause-2.c: New test.

From-SVN: r211079
parent 5028356f
2014-05-30 Ian Lance Taylor <iant@google.com>
* config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
target("sse").
2014-05-30 Tom de Vries <tom@codesourcery.com> 2014-05-30 Tom de Vries <tom@codesourcery.com>
* config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
......
...@@ -1231,15 +1231,6 @@ _mm_sfence (void) ...@@ -1231,15 +1231,6 @@ _mm_sfence (void)
__builtin_ia32_sfence (); __builtin_ia32_sfence ();
} }
/* The execution of the next instruction is delayed by an implementation
specific amount of time. The instruction does not modify the
architectural state. */
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_pause (void)
{
__builtin_ia32_pause ();
}
/* Transpose the 4x4 matrix composed of row[0-3]. */ /* Transpose the 4x4 matrix composed of row[0-3]. */
#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ #define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \
do { \ do { \
...@@ -1262,4 +1253,15 @@ do { \ ...@@ -1262,4 +1253,15 @@ do { \
#pragma GCC pop_options #pragma GCC pop_options
#endif /* __DISABLE_SSE__ */ #endif /* __DISABLE_SSE__ */
/* The execution of the next instruction is delayed by an implementation
specific amount of time. The instruction does not modify the
architectural state. This is after the pop_options pragma because
it does not require SSE support in the processor--the encoding is a
nop on processors that do not support it. */
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_pause (void)
{
__builtin_ia32_pause ();
}
#endif /* _XMMINTRIN_H_INCLUDED */ #endif /* _XMMINTRIN_H_INCLUDED */
2014-05-30 Ian Lance Taylor <iant@google.com>
* gcc.target/i386/pause-2.c: New test.
2014-05-30 Tom de Vries <tom@codesourcery.com> 2014-05-30 Tom de Vries <tom@codesourcery.com>
* gcc.target/i386/fuse-caller-save.c: New test. * gcc.target/i386/fuse-caller-save.c: New test.
......
/* Test that pause instruction works even when SSE is not enabled. */
/* { dg-do compile } */
/* { dg-options "-O2 -dp" } */
/* { dg-final { scan-assembler-times "\\*pause" 1 } } */
#include <xmmintrin.h>
void
foo (void)
{
_mm_pause ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment