mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: minor writebarrier cleanup
This CL mainly moves some work to the switch on w.Op, to make a follow-up change simpler and clearer. Updates #19838 Change-Id: I86f3181c380dd60960afcc24224f655276b8956c Reviewed-on: https://go-review.googlesource.com/42010 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
fc08a19cef
commit
12c286c149
2 changed files with 7 additions and 8 deletions
|
|
@ -172,15 +172,12 @@ func writebarrier(f *Func) {
|
|||
memThen := mem
|
||||
memElse := mem
|
||||
for _, w := range stores {
|
||||
var val *Value
|
||||
ptr := w.Args[0]
|
||||
var typ interface{}
|
||||
if w.Op != OpStoreWB {
|
||||
typ = &ExternSymbol{Sym: w.Aux.(Type).Symbol()}
|
||||
}
|
||||
pos = w.Pos
|
||||
pos := w.Pos
|
||||
|
||||
var fn *obj.LSym
|
||||
var typ *ExternSymbol
|
||||
var val *Value
|
||||
switch w.Op {
|
||||
case OpStoreWB:
|
||||
fn = writebarrierptr
|
||||
|
|
@ -188,8 +185,10 @@ func writebarrier(f *Func) {
|
|||
case OpMoveWB:
|
||||
fn = typedmemmove
|
||||
val = w.Args[1]
|
||||
typ = &ExternSymbol{Sym: w.Aux.(Type).Symbol()}
|
||||
case OpZeroWB:
|
||||
fn = typedmemclr
|
||||
typ = &ExternSymbol{Sym: w.Aux.(Type).Symbol()}
|
||||
}
|
||||
|
||||
// then block: emit write barrier call
|
||||
|
|
@ -255,7 +254,7 @@ func writebarrier(f *Func) {
|
|||
|
||||
// wbcall emits write barrier runtime call in b, returns memory.
|
||||
// if valIsVolatile, it moves val into temp space before making the call.
|
||||
func wbcall(pos src.XPos, b *Block, fn *obj.LSym, typ interface{}, ptr, val, mem, sp, sb *Value, valIsVolatile bool) *Value {
|
||||
func wbcall(pos src.XPos, b *Block, fn *obj.LSym, typ *ExternSymbol, ptr, val, mem, sp, sb *Value, valIsVolatile bool) *Value {
|
||||
config := b.Func.Config
|
||||
|
||||
var tmp GCNode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue