xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.

gcc/

2012-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.

libgomp/

2012-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
	* testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.

libitm/

2012-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.

From-SVN: r189194
This commit is contained in:
Uros Bizjak 2012-07-03 09:24:10 +02:00
parent 43283548c1
commit 68a12ef35b
7 changed files with 20 additions and 7 deletions

View File

@ -1,3 +1,7 @@
2012-07-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
2012-07-03 Roland McGrath <mcgrathr@google.com> 2012-07-03 Roland McGrath <mcgrathr@google.com>
* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the

View File

@ -1225,7 +1225,7 @@ _mm_sfence (void)
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_pause (void) _mm_pause (void)
{ {
__asm__ __volatile__ ("rep; nop" : : ); __builtin_ia32_pause ();
} }
/* Transpose the 4x4 matrix composed of row[0-3]. */ /* Transpose the 4x4 matrix composed of row[0-3]. */

View File

@ -1,7 +1,12 @@
2012-07-03 Uros Bizjak <ubizjak@gmail.com>
* config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
* testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
2012-07-02 Richard Guenther <rguenther@suse.de> 2012-07-02 Richard Guenther <rguenther@suse.de>
Michael Matz <matz@suse.de> Michael Matz <matz@suse.de>
Tobias Grosser <tobias@grosser.es> Tobias Grosser <tobias@grosser.es>
Sebastian Pop <sebpop@gmail.com> Sebastian Pop <sebpop@gmail.com>
* testsuite/libgomp.graphite/force-parallel-4.c: Adjust. * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise. * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.

View File

@ -143,5 +143,5 @@ futex_wake (int *addr, int count)
static inline void static inline void
cpu_relax (void) cpu_relax (void)
{ {
__asm volatile ("rep; nop" : : : "memory"); __builtin_ia32_pause ();
} }

View File

@ -100,7 +100,7 @@ static inline void
busy_wait (void) busy_wait (void)
{ {
#if defined __i386__ || defined __x86_64__ #if defined __i386__ || defined __x86_64__
__asm volatile ("rep; nop" : : : "memory"); __builtin_ia32_pause ();
#elif defined __ia64__ #elif defined __ia64__
__asm volatile ("hint @pause" : : : "memory"); __asm volatile ("hint @pause" : : : "memory");
#elif defined __sparc__ && (defined __arch64__ || defined __sparc_v9__) #elif defined __sparc__ && (defined __arch64__ || defined __sparc_v9__)

View File

@ -1,3 +1,7 @@
2012-07-31 Uros Bizjak <ubizjak@gmail.com>
* config/x86/target.h (cpu_relax): Use __builtin_ia32_pause.
2012-05-21 Patrick Marlier <patrick.marlier@gmail.com> 2012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
* eh_cpp.cc: Fix __cxa_end_catch declaration. * eh_cpp.cc: Fix __cxa_end_catch declaration.

View File

@ -63,7 +63,7 @@ typedef struct gtm_jmpbuf
static inline void static inline void
cpu_relax (void) cpu_relax (void)
{ {
__asm volatile ("rep; nop" : : : "memory"); __builtin_ia32_pause ();
} }
} // namespace GTM } // namespace GTM