From d8c55b91aefb9d6d64cd0ebf2fe5e9a22b1cd71b Mon Sep 17 00:00:00 2001 From: Peter Bergner Date: Thu, 15 May 2014 22:43:12 -0500 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/htmxlintrin.h | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2ddb6dd00cf6..5a29dedf7c79 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-05-15 Peter Bergner + + 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 PR ipa/61085 diff --git a/gcc/config/rs6000/htmxlintrin.h b/gcc/config/rs6000/htmxlintrin.h index 38dc066d30e6..bf7fe3a75abf 100644 --- a/gcc/config/rs6000/htmxlintrin.h +++ b/gcc/config/rs6000/htmxlintrin.h @@ -46,12 +46,17 @@ extern "C" { 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 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) __TM_simple_begin (void) { if (__builtin_expect (__builtin_tbegin (0), 1)) - return 1; + return _HTM_TBEGIN_STARTED; return 0; } @@ -61,7 +66,7 @@ __TM_begin (void* const TM_buff) { *_TEXASRL_PTR (TM_buff) = 0; if (__builtin_expect (__builtin_tbegin (0), 1)) - return 1; + return _HTM_TBEGIN_STARTED; #ifdef __powerpc64__ *_TEXASR_PTR (TM_buff) = __builtin_get_texasr (); #else -- 2.47.3