From: Peter Bergner Date: Fri, 16 May 2014 03:46:23 +0000 (-0500) Subject: backport: re PR target/61193 (ABI incompatibility between POWER and Z HTM builtins... X-Git-Tag: releases/gcc-4.8.3~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd3d78d651c1d0771a88c748b56b697dc5e91c7f;p=thirdparty%2Fgcc.git backport: re PR target/61193 (ABI incompatibility between POWER and Z HTM builtins and intrinsics) Backport from mainline 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. From-SVN: r210488 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d29f8f809333..6536ce1302a3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-05-15 Peter Bergner + + Backport from mainline + 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-14 Eric Botcazou * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate): diff --git a/gcc/config/rs6000/htmxlintrin.h b/gcc/config/rs6000/htmxlintrin.h index c2077d2a3708..3908229d5a85 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