diff options
| author | Clément Chigot <clement.chigot@atos.net> | 2019-02-21 10:46:47 +0100 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2019-03-19 14:16:48 +0000 |
| commit | bf103723f829b206bd24e4cf3c4306c4232b6fc7 (patch) | |
| tree | c0adeced236f392bcc4d91630eba6c0fb8601371 /src/runtime | |
| parent | 451a2eb0abf38874fb144963a44356495141465d (diff) | |
| download | go-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.s | 9 |
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 |
