On 13 Dec 2011, at 01:16, Richard Henderson wrote:

One more try for ppc-linux plus ppc-darwin.

I've taken care of the CALL thing and the register naming thing
since last attempt.

works for me - modulo a couple of typos - probably already fixed in...

 git://repo.or.cz/gcc/rth.git rth/tm-next

... but I haven't got a chance to check that out and rebuild this morning..

cheers
Iain

--- libitm/config/powerpc/sjlj.S        2011-12-13 09:38:38.000000000 +0000
+++ libitm/config/powerpc/sjlj.S-iain   2011-12-13 09:30:47.000000000 +0000
@@ -79,7 +79,7 @@ _$0:
 # ifdef __ppc64__
        .machine ppc64
 # else
-       .macrhine ppc7400
+       .machine ppc7400
 # endif
 #else
 #error "unsupported system"
@@ -162,7 +162,7 @@ FUNC _ITM_beginTransaction
        stregu  r(1), -FRAME(r(1))
        cfi_def_cfa_offset(FRAME)
        cfi_offset(65, LR_SAVE)
-       streg   r(11),  OFS_CFA(r(4))
+       streg   r(6),  OFS_CFA(r(4))
        streg   r(0),   OFS_LR(r(4))
 #ifdef _CALL_DARWIN
        streg   r(13),  OFS_TOC(r(4))
@@ -219,8 +219,8 @@ FUNC _ITM_beginTransaction
        /* ??? Determine when VRs not present.  */
        /* ??? Test r(3) for pr_hasNoVectorUpdate and skip the vr save.
           This is not yet set by the compiler.  */
-       addi    r(5), r(1), OFS_VR
-       addi    r(6), r(1), OFS_VR+16
+       addi    r(5), r(4), OFS_VR
+       addi    r(6), r(4), OFS_VR+16
        mfspr   r(0), VRSAVE
        stvx    v(20), 0, r(5)
        addi    r(5), r(5), 32
@@ -281,16 +281,26 @@ FUNC GTM_longjmp
        cfi_undefined(v(29))
        cfi_undefined(v(30))
        cfi_undefined(v(31))
-       lvx     v(20), 0, r(6); addi    r(6), r(6), 32
-       lvx     v(21), 0, r(7); addi    r(7), r(7), 32
-       lvx     v(22), 0, r(6); addi    r(6), r(6), 32
-       lvx     v(23), 0, r(7); addi    r(7), r(7), 32
-       lvx     v(24), 0, r(6); addi    r(6), r(6), 32
-       lvx     v(25), 0, r(7); addi    r(7), r(7), 32
-       lvx     v(26), 0, r(6); addi    r(6), r(6), 32
-       lvx     v(27), 0, r(7); addi    r(7), r(7), 32
-       lvx     v(28), 0, r(6); addi    r(6), r(6), 32
-       lvx     v(29), 0, r(7); addi    r(7), r(7), 32
+       lvx     v(20), 0, r(6)
+       addi    r(6), r(6), 32
+       lvx     v(21), 0, r(7)
+       addi    r(7), r(7), 32
+       lvx     v(22), 0, r(6)
+       addi    r(6), r(6), 32
+       lvx     v(23), 0, r(7)
+       addi    r(7), r(7), 32
+       lvx     v(24), 0, r(6)
+       addi    r(6), r(6), 32
+       lvx     v(25), 0, r(7)
+       addi    r(7), r(7), 32
+       lvx     v(26), 0, r(6)
+       addi    r(6), r(6), 32
+       lvx     v(27), 0, r(7)
+       addi    r(7), r(7), 32
+       lvx     v(28), 0, r(6)
+       addi    r(6), r(6), 32
+       lvx     v(29), 0, r(7)
+       addi    r(7), r(7), 32
        lvx     v(30), 0, r(6)
        lvx     v(31), 0, r(7)
        mtspr   VRSAVE, r(0)



Reply via email to