aboutsummaryrefslogtreecommitdiff
path: root/libgo/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2018-02-02 00:16:43 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2018-02-02 00:16:43 +0000
commit38f08ec0bd9bd39c578c2e9283a9aa00dc6bda15 (patch)
tree13c1ddb95c4048060b536abd200b8e24d0b2d066 /libgo/go
parent2e30f1ee86b087497fb5178a23a09ea6e22b1af4 (diff)
downloadgcc-38f08ec0bd9bd39c578c2e9283a9aa00dc6bda15.zip
gcc-38f08ec0bd9bd39c578c2e9283a9aa00dc6bda15.tar.gz
gcc-38f08ec0bd9bd39c578c2e9283a9aa00dc6bda15.tar.bz2
runtime: scan register backing store on ia64
On ia64, a separate stack is used for saving/restoring register frames, occupying the other end of the stack mapping. This must also be scanned for pointers into the heap. Reviewed-on: https://go-review.googlesource.com/85276 From-SVN: r257323
Diffstat (limited to 'libgo/go')
-rw-r--r--libgo/go/runtime/runtime2.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/libgo/go/runtime/runtime2.go b/libgo/go/runtime/runtime2.go
index 543086d..0299d5a 100644
--- a/libgo/go/runtime/runtime2.go
+++ b/libgo/go/runtime/runtime2.go
@@ -409,11 +409,15 @@ type g struct {
// gcnextsegment: unused
// gcnextsp: current SP while executing a syscall
// gcinitialsp: g0: top of stack; others: start of stack memory
+ // gcnextsp2: current secondary stack pointer (if present)
+ // gcinitialsp2: start of secondary stack (if present)
gcstack uintptr
gcstacksize uintptr
gcnextsegment uintptr
gcnextsp uintptr
gcinitialsp unsafe.Pointer
+ gcnextsp2 uintptr
+ gcinitialsp2 unsafe.Pointer
// gcregs holds the register values while executing a syscall.
// This is set by getcontext and scanned by the garbage collector.