diff options
author | Austin Clements <austin@google.com> | 2019-10-23 10:20:49 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2019-10-29 03:18:55 +0000 |
commit | 97592b3c14e96eece91ddc91a188e08fd2ed2dfa (patch) | |
tree | 0b02a072954e9b17a0869e7b291613c0e4ad06c2 /src/cmd/compile/internal/mips64 | |
parent | d2101e54908dc6899863be0772658dbd7e0bbc71 (diff) | |
download | go-97592b3c14e96eece91ddc91a188e08fd2ed2dfa.tar.gz go-97592b3c14e96eece91ddc91a188e08fd2ed2dfa.zip |
cmd/compile: intrinsics for runtime/internal/atomic.Store8
For #10958, #24543, but makes sense on its own.
Change-Id: I2a87dab66b82a1863e4b6512b1f8def51463ce2a
Reviewed-on: https://go-review.googlesource.com/c/go/+/203284
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/mips64')
-rw-r--r-- | src/cmd/compile/internal/mips64/ssa.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/mips64/ssa.go b/src/cmd/compile/internal/mips64/ssa.go index a70db3576c..28652f0cc4 100644 --- a/src/cmd/compile/internal/mips64/ssa.go +++ b/src/cmd/compile/internal/mips64/ssa.go @@ -516,9 +516,12 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) { p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg0() s.Prog(mips.ASYNC) - case ssa.OpMIPS64LoweredAtomicStore32, ssa.OpMIPS64LoweredAtomicStore64: + case ssa.OpMIPS64LoweredAtomicStore8, ssa.OpMIPS64LoweredAtomicStore32, ssa.OpMIPS64LoweredAtomicStore64: as := mips.AMOVV - if v.Op == ssa.OpMIPS64LoweredAtomicStore32 { + switch v.Op { + case ssa.OpMIPS64LoweredAtomicStore8: + as = mips.AMOVB + case ssa.OpMIPS64LoweredAtomicStore32: as = mips.AMOVW } s.Prog(mips.ASYNC) |