aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorClément Chigot <clement.chigot@atos.net>2019-02-21 10:46:47 +0100
committerIan Lance Taylor <iant@golang.org>2019-03-19 14:16:48 +0000
commitbf103723f829b206bd24e4cf3c4306c4232b6fc7 (patch)
treec0adeced236f392bcc4d91630eba6c0fb8601371 /src/runtime
parent451a2eb0abf38874fb144963a44356495141465d (diff)
downloadgo-bf103723f829b206bd24e4cf3c4306c4232b6fc7.tar.xz
runtime: fix sigfwd for aix/ppc64
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>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/sys_aix_ppc64.s9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/runtime/sys_aix_ppc64.s b/src/runtime/sys_aix_ppc64.s
index d9e97ac8b7..ee572cb4de 100644
--- a/src/runtime/sys_aix_ppc64.s
+++ b/src/runtime/sys_aix_ppc64.s
@@ -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