]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix sigfwd for aix/ppc64
authorClément Chigot <clement.chigot@atos.net>
Thu, 21 Feb 2019 09:46:47 +0000 (10:46 +0100)
committerIan Lance Taylor <iant@golang.org>
Tue, 19 Mar 2019 14:16:48 +0000 (14:16 +0000)
This commit fixes runtime.sigfwd for aix/ppc64. fn is a function
descriptor and not a function. R2 must be saved and restored.

Change-Id: Ie506b0bdde562ca37202d19973ba1d537c3d64e2
Reviewed-on: https://go-review.googlesource.com/c/go/+/164015
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/sys_aix_ppc64.s

index d9e97ac8b7bb9aaa07d00f64eb0e04accb82ebd6..ee572cb4deb5588492d14dc18b8ab06e2c879f23 100644 (file)
@@ -77,8 +77,15 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
        MOVD    info+16(FP), R4
        MOVD    ctx+24(FP), R5
        MOVD    fn+0(FP), R12
-       MOVD    R12, CTR
+       // fn is a function descriptor
+       // R2 must be saved on restore
+       MOVD    0(R12), R0
+       MOVD    R2, 40(R1)
+       MOVD    8(R12), R2
+       MOVD    R0, CTR
        BL      (CTR)
+       MOVD    40(R1), R2
+       BL      runtime·reginit(SB)
        RET