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
This commit is contained in:
parent
5028356f89
commit
f9a8f6d9cb
4 changed files with 32 additions and 9 deletions
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
* config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
|
||||
|
|
|
@ -1231,15 +1231,6 @@ _mm_sfence (void)
|
|||
__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]. */
|
||||
#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \
|
||||
do { \
|
||||
|
@ -1262,4 +1253,15 @@ do { \
|
|||
#pragma GCC pop_options
|
||||
#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 */
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
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>
|
||||
|
||||
* gcc.target/i386/fuse-caller-save.c: New test.
|
||||
|
|
12
gcc/testsuite/gcc.target/i386/pause-2.c
Normal file
12
gcc/testsuite/gcc.target/i386/pause-2.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
/* 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 ();
|
||||
}
|
Loading…
Add table
Reference in a new issue