target.h (cpu_relax): Read from CC register.

* config/sparc/target.h (cpu_relax): Read from CC register.
	* config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.

From-SVN: r184202
This commit is contained in:
Eric Botcazou 2012-02-14 09:22:26 +00:00
parent 7daac345d1
commit 62513f7bed
3 changed files with 14 additions and 9 deletions

View File

@ -1,10 +1,15 @@
2012-02-15 Uros Bizjak <ubizjak@gmail.com>
2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/target.h (cpu_relax): Read from CC register.
* config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.
2012-02-14 Uros Bizjak <ubizjak@gmail.com>
* config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
* 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 <ro@CeBiTec.Uni-Bielefeld.DE>
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 <triegel@redhat.com>

View File

@ -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

View File

@ -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