runtime: change some stack fields to uintptr

Because of how gccgo implements cgo calls, the code in dropm may not
have any write barriers.  As a step toward implementing that, change
the gcstack, gcnextsegment, and gcnextsp fields of the g struct to
uintptr, so that assignments to them do not require write barriers.
The gcinitialsp field remains unsafe.Pointer, as on 32-bit systems
that do not support split stack it points to a heap allocated space
used for the goroutine stack.

The test for this is runtime tests like TestCgoCallbackGC, which are
not run today but will be run with a future gotools patch.

Change-Id: I1c9ff83829802f011d143e97b5060e1dd9432d6a
Reviewed-on: https://go-review.googlesource.com/46396
Reviewed-by: Than McIntosh <thanm@google.com>
4 files changed