aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ppc64
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2019-10-23 10:20:49 -0400
committerAustin Clements <austin@google.com>2019-10-29 03:18:55 +0000
commit97592b3c14e96eece91ddc91a188e08fd2ed2dfa (patch)
tree0b02a072954e9b17a0869e7b291613c0e4ad06c2 /src/cmd/compile/internal/ppc64
parentd2101e54908dc6899863be0772658dbd7e0bbc71 (diff)
downloadgo-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/ppc64')
-rw-r--r--src/cmd/compile/internal/ppc64/ssa.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/ppc64/ssa.go b/src/cmd/compile/internal/ppc64/ssa.go
index 4f852b883a..4af6e9d5ed 100644
--- a/src/cmd/compile/internal/ppc64/ssa.go
+++ b/src/cmd/compile/internal/ppc64/ssa.go
@@ -335,12 +335,16 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
pisync.To.Type = obj.TYPE_NONE
gc.Patch(p2, pisync)
- case ssa.OpPPC64LoweredAtomicStore32,
+ case ssa.OpPPC64LoweredAtomicStore8,
+ ssa.OpPPC64LoweredAtomicStore32,
ssa.OpPPC64LoweredAtomicStore64:
// SYNC or LWSYNC
- // MOVD/MOVW arg1,(arg0)
+ // MOVB/MOVW/MOVD arg1,(arg0)
st := ppc64.AMOVD
- if v.Op == ssa.OpPPC64LoweredAtomicStore32 {
+ switch v.Op {
+ case ssa.OpPPC64LoweredAtomicStore8:
+ st = ppc64.AMOVB
+ case ssa.OpPPC64LoweredAtomicStore32:
st = ppc64.AMOVW
}
arg0 := v.Args[0].Reg()