diff options
author | Austin Clements <austin@google.com> | 2019-03-28 14:58:06 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2019-05-03 19:25:37 +0000 |
commit | 4a4e05b0b166ef17d62789d7ca6d58aeb846c5d1 (patch) | |
tree | 678cafc2a6988214970602778ce15b85a8840ff9 /src/cmd/compile/internal/ppc64 | |
parent | 7fcba81549b7088e8f4cda3a2702d948de42839e (diff) | |
download | go-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.go | 12 |
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() |