]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix cgocallback_gofunc on ppc64x
authorMichael Munday <munday@ca.ibm.com>
Sat, 30 Apr 2016 00:17:06 +0000 (20:17 -0400)
committerIan Lance Taylor <iant@golang.org>
Sat, 30 Apr 2016 03:49:22 +0000 (03:49 +0000)
Fix issues introduced in 5f9a870.

Change-Id: Ia75945ef563956613bf88bbe57800a96455c265d
Reviewed-on: https://go-review.googlesource.com/22661
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/asm_ppc64x.s
src/runtime/cgo/asm_ppc64x.s

index f7e00198a33d6891dc95368314594bf0921aa5e0..32c63c2671601bd1737ba93cd5cd87481764d1d6 100644 (file)
@@ -588,7 +588,7 @@ TEXT runtime·cgocallback(SB),NOSPLIT,$32-32
 
 // cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize, uintptr ctxt)
 // See cgocall.go for more details.
-TEXT ·cgocallback_gofunc(SB),NOSPLIT,$16-24
+TEXT ·cgocallback_gofunc(SB),NOSPLIT,$16-32
        NO_LOCAL_POINTERS
 
        // Load m and g from thread-local storage.
@@ -662,9 +662,9 @@ havem:
        BL      runtime·save_g(SB)
        MOVD    (g_sched+gobuf_sp)(g), R4 // prepare stack as R4
        MOVD    (g_sched+gobuf_pc)(g), R5
-       MOVD    R5, -(FIXED_FRAME+8)(R4)
-       MOVD    ctxt+24(FP), R1
-       MOVD    R1, -(FIXED_FRAME+16)(R4)
+       MOVD    R5, -(FIXED_FRAME+16)(R4)
+       MOVD    ctxt+24(FP), R3
+       MOVD    R3, -16(R4)
        MOVD    $-(FIXED_FRAME+16)(R4), R1
        BL      runtime·cgocallbackg(SB)
 
index 954ed7edb3fc96c0ef329557787fdcf4d4189a1b..dded1be3998d8e8b1b4e21bc9c9bef3b237a5905 100644 (file)
@@ -33,7 +33,7 @@ TEXT crosscall2(SB),NOSPLIT|NOFRAME,$0
        MOVD    R6, FIXED_FRAME+16(R1)
        BL      (CTR)
 
-       ADD     $(288+2*8+FIXED_FRAME), R1
+       ADD     $(288+3*8+FIXED_FRAME), R1
 
        BL      restoreregs2<>(SB)