diff options
author | Michael Hudson-Doyle <michael.hudson@canonical.com> | 2015-10-08 22:34:29 +1300 |
---|---|---|
committer | Michael Hudson-Doyle <michael.hudson@canonical.com> | 2015-10-18 23:15:26 +0000 |
commit | b8f8969fbd91e8c6a1a6e523be91a99f92d0f809 (patch) | |
tree | 544eb63477abb53b28ed5a1aeb275361a913a49a /src/runtime/sys_linux_ppc64x.s | |
parent | 97055dc1f16ef430b85fb6f8d2bd07a2695afa69 (diff) | |
download | go-b8f8969fbd91e8c6a1a6e523be91a99f92d0f809.tar.gz go-b8f8969fbd91e8c6a1a6e523be91a99f92d0f809.zip |
reflect, runtime, runtime/cgo: use ppc64 asm constant for fixed frame size
Shared libraries on ppc64le will require a larger minimum stack frame (because
the ABI mandates that the TOC pointer is available at 24(R1)). Part 3 of that
is using a #define in the ppc64 assembly to refer to the size of the fixed
part of the stack (finding all these took me about a week!).
Change-Id: I50f22fe1c47af1ec59da1bd7ea8f84a4750df9b7
Reviewed-on: https://go-review.googlesource.com/15525
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/sys_linux_ppc64x.s')
-rw-r--r-- | src/runtime/sys_linux_ppc64x.s | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/runtime/sys_linux_ppc64x.s b/src/runtime/sys_linux_ppc64x.s index a5dafd4ff6..ee15beeb3a 100644 --- a/src/runtime/sys_linux_ppc64x.s +++ b/src/runtime/sys_linux_ppc64x.s @@ -12,6 +12,7 @@ #include "go_asm.h" #include "go_tls.h" #include "textflag.h" +#include "asm_ppc64x.h" #define SYS_exit 1 #define SYS_read 3 @@ -231,9 +232,9 @@ TEXT runtimeĀ·_sigtramp(SB),NOSPLIT,$64 BEQ 2(PC) BL runtimeĀ·load_g(SB) - MOVW R3, 8(R1) - MOVD R4, 16(R1) - MOVD R5, 24(R1) + MOVW R3, FIXED_FRAME+0(R1) + MOVD R4, FIXED_FRAME+8(R1) + MOVD R5, FIXED_FRAME+16(R1) MOVD $runtimeĀ·sigtrampgo(SB), R31 MOVD R31, CTR BL (CTR) |