aboutsummaryrefslogtreecommitdiff
path: root/libitm/libitm_i.h
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2011-11-22 09:57:19 +0000
committerIain Sandoe <iains@gcc.gnu.org>2011-11-22 09:57:19 +0000
commit0b41ebef72631ec8cf5ffd16537d1274c3fd6800 (patch)
treedbf525527b3ae9e4434c36c077376e4711f90020 /libitm/libitm_i.h
parent9c9d352aba3c5b3d921c2f73f0bbcda45f99b99c (diff)
downloadgcc-0b41ebef72631ec8cf5ffd16537d1274c3fd6800.zip
gcc-0b41ebef72631ec8cf5ffd16537d1274c3fd6800.tar.gz
gcc-0b41ebef72631ec8cf5ffd16537d1274c3fd6800.tar.bz2
sjlj.S (CONCAT1, [...]): Respond to __USER_LABEL_PREFIX__ for targets that use it.
libitm: * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to __USER_LABEL_PREFIX__ for targets that use it. TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets. (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist in portability to non-elf targets. (GTM_longjmp): LIkewise. * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__ where required. From-SVN: r181612
Diffstat (limited to 'libitm/libitm_i.h')
-rw-r--r--libitm/libitm_i.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/libitm/libitm_i.h b/libitm/libitm_i.h
index 58e43b0..ba1afb4 100644
--- a/libitm/libitm_i.h
+++ b/libitm/libitm_i.h
@@ -240,9 +240,15 @@ struct gtm_thread
// Invoked from assembly language, thus the "asm" specifier on
// the name, avoiding complex name mangling.
+#ifdef __USER_LABEL_PREFIX__
+#define UPFX1(t) UPFX(t)
+#define UPFX(t) #t
+ static uint32_t begin_transaction(uint32_t, const gtm_jmpbuf *)
+ __asm__(UPFX1(__USER_LABEL_PREFIX__) "GTM_begin_transaction") ITM_REGPARM;
+#else
static uint32_t begin_transaction(uint32_t, const gtm_jmpbuf *)
__asm__("GTM_begin_transaction") ITM_REGPARM;
-
+#endif
// In eh_cpp.cc
void revert_cpp_exceptions (gtm_transaction_cp *cp = 0);