mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: buffered write barrier for 386
Updates #22460. Change-Id: I3c8e90fd6bcda7e28911036591873d63665aaca7 Reviewed-on: https://go-review.googlesource.com/92696 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
de186c63ce
commit
252f1170e5
9 changed files with 124 additions and 3 deletions
|
|
@ -294,6 +294,17 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize bool) *Config
|
|||
|
||||
// runtime call clobber R12 on nacl
|
||||
opcodeTable[OpARMCALLudiv].reg.clobbers |= 1 << 12 // R12
|
||||
|
||||
// Returns clobber BP on nacl/386, so the write
|
||||
// barrier does.
|
||||
opcodeTable[Op386LoweredWB].reg.clobbers |= 1 << 5 // BP
|
||||
}
|
||||
|
||||
if ctxt.Flag_shared {
|
||||
// LoweredWB is secretly a CALL and CALLs on 386 in
|
||||
// shared mode get rewritten by obj6.go to go through
|
||||
// the GOT, which clobbers BX.
|
||||
opcodeTable[Op386LoweredWB].reg.clobbers |= 1 << 3 // BX
|
||||
}
|
||||
|
||||
// cutoff is compared with product of numblocks and numvalues,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue