aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ppc64
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2019-03-28 14:58:06 -0400
committerAustin Clements <austin@google.com>2019-05-03 19:25:37 +0000
commit4a4e05b0b166ef17d62789d7ca6d58aeb846c5d1 (patch)
tree678cafc2a6988214970602778ce15b85a8840ff9 /src/cmd/compile/internal/ppc64
parent7fcba81549b7088e8f4cda3a2702d948de42839e (diff)
downloadgo-4a4e05b0b166ef17d62789d7ca6d58aeb846c5d1.tar.gz
go-4a4e05b0b166ef17d62789d7ca6d58aeb846c5d1.zip
cmd/compile,runtime/internal/atomic: add Load8
Change-Id: Id52a5730cf9207ee7ccebac4ef12791dc5720e7c Reviewed-on: https://go-review.googlesource.com/c/go/+/172283 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ppc64')
-rw-r--r--src/cmd/compile/internal/ppc64/ssa.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cmd/compile/internal/ppc64/ssa.go b/src/cmd/compile/internal/ppc64/ssa.go
index 4159b2fe7c..f3a49643f1 100644
--- a/src/cmd/compile/internal/ppc64/ssa.go
+++ b/src/cmd/compile/internal/ppc64/ssa.go
@@ -323,18 +323,22 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
pisync := s.Prog(ppc64.AISYNC)
pisync.To.Type = obj.TYPE_NONE
- case ssa.OpPPC64LoweredAtomicLoad32,
+ case ssa.OpPPC64LoweredAtomicLoad8,
+ ssa.OpPPC64LoweredAtomicLoad32,
ssa.OpPPC64LoweredAtomicLoad64,
ssa.OpPPC64LoweredAtomicLoadPtr:
// SYNC
- // MOVD/MOVW (Rarg0), Rout
+ // MOVB/MOVD/MOVW (Rarg0), Rout
// CMP Rout,Rout
// BNE 1(PC)
// ISYNC
ld := ppc64.AMOVD
cmp := ppc64.ACMP
- if v.Op == ssa.OpPPC64LoweredAtomicLoad32 {
- ld = ppc64.AMOVW
+ switch v.Op {
+ case ssa.OpPPC64LoweredAtomicLoad8:
+ ld = ppc64.AMOVBZ
+ case ssa.OpPPC64LoweredAtomicLoad32:
+ ld = ppc64.AMOVWZ
cmp = ppc64.ACMPW
}
arg0 := v.Args[0].Reg()