Commit d8c55b91 by Peter Bergner Committed by Peter Bergner

re PR target/61193 (ABI incompatibility between POWER and Z HTM builtins and intrinsics)

	PR target/61193
	* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
	(__TM_simple_begin): Use it.
	(__TM_begin): Likewise.

From-SVN: r210486
parent ef1f23cc
2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
PR target/61193
* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
(__TM_simple_begin): Use it.
(__TM_begin): Likewise.
2014-05-15 Martin Jambor <mjambor@suse.cz> 2014-05-15 Martin Jambor <mjambor@suse.cz>
PR ipa/61085 PR ipa/61085
......
...@@ -46,12 +46,17 @@ extern "C" { ...@@ -46,12 +46,17 @@ extern "C" {
typedef char TM_buff_type[16]; typedef char TM_buff_type[16];
/* Compatibility macro with s390. This macro can be used to determine
whether a transaction was successfully started from the __TM_begin()
and __TM_simple_begin() intrinsic functions below. */
#define _HTM_TBEGIN_STARTED 1
extern __inline long extern __inline long
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
__TM_simple_begin (void) __TM_simple_begin (void)
{ {
if (__builtin_expect (__builtin_tbegin (0), 1)) if (__builtin_expect (__builtin_tbegin (0), 1))
return 1; return _HTM_TBEGIN_STARTED;
return 0; return 0;
} }
...@@ -61,7 +66,7 @@ __TM_begin (void* const TM_buff) ...@@ -61,7 +66,7 @@ __TM_begin (void* const TM_buff)
{ {
*_TEXASRL_PTR (TM_buff) = 0; *_TEXASRL_PTR (TM_buff) = 0;
if (__builtin_expect (__builtin_tbegin (0), 1)) if (__builtin_expect (__builtin_tbegin (0), 1))
return 1; return _HTM_TBEGIN_STARTED;
#ifdef __powerpc64__ #ifdef __powerpc64__
*_TEXASR_PTR (TM_buff) = __builtin_get_texasr (); *_TEXASR_PTR (TM_buff) = __builtin_get_texasr ();
#else #else
......
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