compiler, runtime: call gcWriteBarrier instead of writebarrierptr
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Sep 2018 22:25:58 +0000 (22:25 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Sep 2018 22:25:58 +0000 (22:25 +0000)
commitcec07c4759e8af44ca77a2beb9312e4e30d1cc7a
tree38fe52c7aeba372693d83041bf5037d8fbb2c311
parent38fab7369d19fd545eb8510ec198e73949a2c75d
compiler, runtime: call gcWriteBarrier instead of writebarrierptr

    In 1.11 writebarrierptr is going away, so change the compiler to call
    gcWriteBarrier instead.  We weren't using gcWriteBarrier before;
    adjust the implementation to use the putFast method.

    This revealed a problem in the kickoff function.  When using cgo,
    kickoff can be called on the g0 of an m allocated by newExtraM.  In
    that case the m will generally have a p, but systemstack may be called
    by wbBufFlush as part of flushing the write barrier buffer.  At that
    point the buffer is full, so we can not do a write barrier.  So adjust
    the existing code in kickoff so that in the case where we are g0,
    don't do any write barrier at all.

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

From-SVN: r264295
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/runtime.def
gcc/go/gofrontend/wb.cc
libgo/go/runtime/mgc_gccgo.go
libgo/go/runtime/proc.go