From 0f3250cd2d9c5a8ac91a36fb942056f82c5c963a Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Tue, 14 Feb 2012 09:22:26 +0000 Subject: [PATCH] * config/sparc/target.h (cpu_relax): Read from CC register. * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184202 138bc75d-0d04-0410-961f-82ee72b054a4 --- libitm/ChangeLog | 12 ++++++++---- libitm/config/sparc/sjlj.S | 9 +++++---- libitm/config/sparc/target.h | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 6e24888..decdad3 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,10 +1,15 @@ -2012-02-15 Uros Bizjak +2012-02-14 Eric Botcazou + + * config/sparc/target.h (cpu_relax): Read from CC register. + * config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically. + +2012-02-14 Uros Bizjak * config/x86/target.h (GTM_longjmp): Jump indirect from memory address. 2012-02-13 Eric Botcazou - * configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9. + * configure.tgt (target_cpu): Handle sparc and sparc64/sparcv9. * config/sparc/cacheline.h: New file. * config/sparc/target.h: Likewise. * config/sparc/sjlj.S: Likewise. @@ -19,8 +24,7 @@ 2012-01-31 Rainer Orth PR libitm/51822 - * testsuite/libitm.c++/c++.exp (lang_link_flags): Add - -shared-libgcc. + * testsuite/libitm.c++/c++.exp (lang_link_flags): Add -shared-libgcc. Correct libgomp references. 2012-01-24 Torvald Riegel diff --git a/libitm/config/sparc/sjlj.S b/libitm/config/sparc/sjlj.S index a42040f..71f4837 100644 --- a/libitm/config/sparc/sjlj.S +++ b/libitm/config/sparc/sjlj.S @@ -79,12 +79,13 @@ _ITM_beginTransaction: GTM_longjmp: cfi_startproc flushw - load [%o1 + OFFSET (JB_CFA)], %fp - cfi_def_cfa(%fp, 0) #if STACK_BIAS - sub %fp, STACK_BIAS, %fp - cfi_def_cfa_offset(STACK_BIAS) + load [%o1 + OFFSET (JB_CFA)], %g1 + sub %g1, STACK_BIAS, %fp +#else + load [%o1 + OFFSET (JB_CFA)], %fp #endif + cfi_def_cfa(%fp, STACK_BIAS) load [%o1 + OFFSET (JB_PC)], %o7 jmp %o7+8 restore %g0, %o0, %o0 diff --git a/libitm/config/sparc/target.h b/libitm/config/sparc/target.h index 8f5b6aa..12eb821 100644 --- a/libitm/config/sparc/target.h +++ b/libitm/config/sparc/target.h @@ -40,7 +40,7 @@ typedef struct gtm_jmpbuf static inline void cpu_relax (void) { - __asm volatile ("" : : : "memory"); + __asm volatile ("rd %%ccr, %%g0" : : : "memory"); } } // namespace GTM -- 2.7.4