aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_linux_ppc64x.s
diff options
context:
space:
mode:
authorMichael Hudson-Doyle <michael.hudson@canonical.com>2015-10-08 22:34:29 +1300
committerMichael Hudson-Doyle <michael.hudson@canonical.com>2015-10-18 23:15:26 +0000
commitb8f8969fbd91e8c6a1a6e523be91a99f92d0f809 (patch)
tree544eb63477abb53b28ed5a1aeb275361a913a49a /src/runtime/sys_linux_ppc64x.s
parent97055dc1f16ef430b85fb6f8d2bd07a2695afa69 (diff)
downloadgo-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.s7
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)