aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
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