* config/sparc/target.h (cpu_relax): Read from CC register.
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Feb 2012 09:22:26 +0000 (09:22 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Feb 2012 09:22:26 +0000 (09:22 +0000)
* 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
libitm/config/sparc/sjlj.S
libitm/config/sparc/target.h

index 6e24888..decdad3 100644 (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>
index a42040f..71f4837 100644 (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
index 8f5b6aa..12eb821 100644 (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