diff options
author | Austin Clements <austin@google.com> | 2017-11-15 14:54:24 -0800 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2018-02-13 16:34:21 +0000 |
commit | 313a4b2b7f6479f13c4d460aebe514aa86543e21 (patch) | |
tree | a608750561400f7e13c59c187ae17b2803fab81f /src/cmd/compile/internal/ssa/rewriteMIPS.go | |
parent | a39de964385fb32d13d8fac3991a669de962f0bd (diff) | |
download | go-313a4b2b7f6479f13c4d460aebe514aa86543e21.tar.gz go-313a4b2b7f6479f13c4d460aebe514aa86543e21.zip |
runtime: buffered write barrier for mips
Updates #22460.
Change-Id: Ieaca94385c3bb88dcc8351c3866b4b0e2a1412b5
Reviewed-on: https://go-review.googlesource.com/92701
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteMIPS.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewriteMIPS.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go index d4f4c03ca3..d40b770752 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go @@ -491,6 +491,8 @@ func rewriteValueMIPS(v *Value) bool { return rewriteValueMIPS_OpTrunc32to16_0(v) case OpTrunc32to8: return rewriteValueMIPS_OpTrunc32to8_0(v) + case OpWB: + return rewriteValueMIPS_OpWB_0(v) case OpXor16: return rewriteValueMIPS_OpXor16_0(v) case OpXor32: @@ -9113,6 +9115,24 @@ func rewriteValueMIPS_OpTrunc32to8_0(v *Value) bool { return true } } +func rewriteValueMIPS_OpWB_0(v *Value) bool { + // match: (WB {fn} destptr srcptr mem) + // cond: + // result: (LoweredWB {fn} destptr srcptr mem) + for { + fn := v.Aux + _ = v.Args[2] + destptr := v.Args[0] + srcptr := v.Args[1] + mem := v.Args[2] + v.reset(OpMIPSLoweredWB) + v.Aux = fn + v.AddArg(destptr) + v.AddArg(srcptr) + v.AddArg(mem) + return true + } +} func rewriteValueMIPS_OpXor16_0(v *Value) bool { // match: (Xor16 x y) // cond: |