runtime: change some stack fields to uintptr
commit2386202283cf3daa799f87f01f30f4bafdca79c6
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 Jun 2017 14:44:30 +0000 (22 14:44 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 Jun 2017 14:44:30 +0000 (22 14:44 +0000)
tree0c76bd6000837d9b83d3a57a300d41d87eaf3fb1
parent6e033bf7761a2870605b9e90ed7f7dafc8c9aa70
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.

    Reviewed-on: https://go-review.googlesource.com/46396

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249561 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/go/gofrontend/MERGE
libgo/go/runtime/proc.go
libgo/go/runtime/runtime2.go
libgo/runtime/proc.c
libgo/runtime/stack.c