File tree Expand file tree Collapse file tree 4 files changed +8
-4
lines changed Expand file tree Collapse file tree 4 files changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -119,6 +119,7 @@ DEF_ATTR_IDENT (ATTR_TYPEGENERIC, "type generic")
119119DEF_ATTR_IDENT (ATTR_TM_REGPARM, "*tm regparm")
120120DEF_ATTR_IDENT (ATTR_TM_TMPURE, "transaction_pure")
121121DEF_ATTR_IDENT (ATTR_RETURNS_TWICE, "returns_twice")
122+ DEF_ATTR_IDENT (ATTR_SYSV_ABI, "sysv_abi")
122123DEF_ATTR_IDENT (ATTR_RETURNS_NONNULL, "returns_nonnull")
123124DEF_ATTR_IDENT (ATTR_WARN_UNUSED_RESULT, "warn_unused_result")
124125
@@ -401,6 +402,8 @@ DEF_ATTR_TREE_LIST (ATTR_TM_CONST_NOTHROW_LIST,
401402 ATTR_TM_REGPARM, ATTR_NULL, ATTR_CONST_NOTHROW_LIST)
402403DEF_ATTR_TREE_LIST (ATTR_TM_NOTHROW_RT_LIST,
403404 ATTR_RETURNS_TWICE, ATTR_NULL, ATTR_TM_NOTHROW_LIST)
405+ DEF_ATTR_TREE_LIST (ATTR_TM_NOTHROW_RT_SYSV_LIST,
406+ ATTR_SYSV_ABI, ATTR_NULL, ATTR_TM_NOTHROW_RT_LIST)
404407
405408/* Same attributes used for BUILT_IN_MALLOC except with TM_PURE thrown in. */
406409DEF_ATTR_TREE_LIST (ATTR_TMPURE_MALLOC_NOTHROW_LIST,
Original file line number Diff line number Diff line change 11DEF_TM_BUILTIN (BUILT_IN_TM_START, "_ITM_beginTransaction",
2- BT_FN_UINT32_UINT32_VAR, ATTR_TM_NOTHROW_RT_LIST )
2+ BT_FN_UINT32_UINT32_VAR, ATTR_TM_NOTHROW_RT_SYSV_LIST )
33
44DEF_TM_BUILTIN (BUILT_IN_TM_COMMIT, "_ITM_commitTransaction",
55 BT_FN_VOID, ATTR_TM_NOTHROW_LIST)
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ extern "C" {
4545
4646#define ITM_NORETURN __attribute__((noreturn))
4747#define ITM_PURE __attribute__((transaction_pure))
48+ #define ITM_SYSV __attribute__((sysv_abi))
4849#ifdef _GLIBCXX_NOTHROW
4950# define _ITM_NOTHROW _GLIBCXX_NOTHROW
5051#elif !defined (__cplusplus )
@@ -154,7 +155,7 @@ typedef uint64_t _ITM_transactionId_t; /* Transaction identifier */
154155
155156extern _ITM_transactionId_t _ITM_getTransactionId (void ) ITM_REGPARM ;
156157
157- extern uint32_t _ITM_beginTransaction (uint32_t , ...) ITM_REGPARM ;
158+ extern uint32_t _ITM_beginTransaction (uint32_t , ...) ITM_REGPARM ITM_SYSV ;
158159
159160extern void _ITM_abortTransaction (_ITM_abortReason ) ITM_REGPARM ITM_NORETURN ;
160161
Original file line number Diff line number Diff line change @@ -294,7 +294,7 @@ struct gtm_thread
294294 // Invoked from assembly language, thus the "asm" specifier on
295295 // the name, avoiding complex name mangling.
296296 static uint32_t begin_transaction (uint32_t , const gtm_jmpbuf *)
297- __asm__(UPFX " GTM_begin_transaction" ) ITM_REGPARM;
297+ __asm__(UPFX " GTM_begin_transaction" ) ITM_REGPARM ITM_SYSV ;
298298 // In eh_cpp.cc
299299 void init_cpp_exceptions ();
300300 void revert_cpp_exceptions (gtm_transaction_cp *cp = 0 );
@@ -328,7 +328,7 @@ namespace GTM HIDDEN {
328328extern uint64_t gtm_spin_count_var;
329329
330330extern " C" uint32_t GTM_longjmp (uint32_t , const gtm_jmpbuf *, uint32_t )
331- ITM_NORETURN ITM_REGPARM;
331+ ITM_NORETURN ITM_REGPARM ITM_SYSV ;
332332
333333extern " C" void GTM_LB (const void *, size_t ) ITM_REGPARM;
334334
You can’t perform that action at this time.
0 commit comments