From 38f08ec0bd9bd39c578c2e9283a9aa00dc6bda15 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 2 Feb 2018 00:16:43 +0000 Subject: 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 --- libgo/go/runtime/runtime2.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libgo/go') 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. -- cgit v1.1