libitm: Introduce target macro TARGET_BEGIN_TRANSACTION_ATTRIBUTE.
The attached patch adds the a target specific attribute via the new target macro TARGET_BEGIN_TRANSACTION_ATTRIBUTE to the function begin_transaction(). S/390 uses this to set the soft-float target attribute which is needed to fix a crash with -m31. As there seems to be no place in libitm to document internal macros like USE_HTM_FASTPATH or the new macro, I've put the documentation in a comment where the macro is used. 2016-03-03 Dominik Vogt <vogt@linux.vnet.ibm.com> * config/s390/target.h (TARGET_BEGIN_TRANSACTION_ATTRIBUTE): Define function attribute to disable floating point in begin_transaction() on S/390. * beginend.cc (begin_transaction): Use TARGET_BEGIN_TRANSACTION_ATTRIBUTE. From-SVN: r233929
This commit is contained in:
parent
a75f5e30cc
commit
edcbda7e2c
3 changed files with 17 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2016-03-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
* config/s390/target.h (TARGET_BEGIN_TRANSACTION_ATTRIBUTE): Define
|
||||||
|
function attribute to disable floating point in begin_transaction() on
|
||||||
|
S/390.
|
||||||
|
* beginend.cc (begin_transaction): Use
|
||||||
|
TARGET_BEGIN_TRANSACTION_ATTRIBUTE.
|
||||||
|
|
||||||
2016-01-22 Torvald Riegel <triegel@redhat.com>
|
2016-01-22 Torvald Riegel <triegel@redhat.com>
|
||||||
|
|
||||||
* beginend.cc (GTM::gtm_thread::serial_lock): Put on cacheline
|
* beginend.cc (GTM::gtm_thread::serial_lock): Put on cacheline
|
||||||
|
|
|
@ -149,6 +149,12 @@ choose_code_path(uint32_t prop, abi_dispatch *disp)
|
||||||
return a_runInstrumentedCode;
|
return a_runInstrumentedCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TARGET_BEGIN_TRANSACTION_ATTRIBUTE
|
||||||
|
/* This macro can be used to define target specific attributes for this
|
||||||
|
function. For example, S/390 requires floating point to be disabled in
|
||||||
|
begin_transaction. */
|
||||||
|
TARGET_BEGIN_TRANSACTION_ATTRIBUTE
|
||||||
|
#endif
|
||||||
uint32_t
|
uint32_t
|
||||||
GTM::gtm_thread::begin_transaction (uint32_t prop, const gtm_jmpbuf *jb)
|
GTM::gtm_thread::begin_transaction (uint32_t prop, const gtm_jmpbuf *jb)
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,6 +69,9 @@ cpu_relax (void)
|
||||||
/* Number of retries for transient failures. */
|
/* Number of retries for transient failures. */
|
||||||
#define _HTM_ITM_RETRIES 10
|
#define _HTM_ITM_RETRIES 10
|
||||||
#define USE_HTM_FASTPATH
|
#define USE_HTM_FASTPATH
|
||||||
|
#define TARGET_BEGIN_TRANSACTION_ATTRIBUTE \
|
||||||
|
__attribute__ ((target("soft-float")))
|
||||||
|
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
htm_available ()
|
htm_available ()
|
||||||
|
|
Loading…
Add table
Reference in a new issue