From: David Chase Date: Mon, 26 Sep 2016 15:32:49 +0000 (-0700) Subject: cmd/compile: On PPC, nilcheck load should be MOVBZ X-Git-Tag: go1.8beta1~1164 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1906d93bfda1c7b4af51457bc0a137b8418500b7;p=gostls13.git cmd/compile: On PPC, nilcheck load should be MOVBZ There's no load-signed-byte on PPC, so MOVB causes the assembler to macro-expand in a useless sign extension. Fixes #17211. Change-Id: Ibcd73aea4c94ba6df0a998b0091e45508113be2a Reviewed-on: https://go-review.googlesource.com/29762 Run-TryBot: David Chase TryBot-Result: Gobot Gobot Reviewed-by: Michael Munday Reviewed-by: Cherry Zhang --- diff --git a/src/cmd/compile/internal/ppc64/ssa.go b/src/cmd/compile/internal/ppc64/ssa.go index e3e6864db0..67fab94bb0 100644 --- a/src/cmd/compile/internal/ppc64/ssa.go +++ b/src/cmd/compile/internal/ppc64/ssa.go @@ -813,7 +813,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) { case ssa.OpPPC64LoweredNilCheck: // Issue a load which will fault if arg is nil. - p := gc.Prog(ppc64.AMOVB) + p := gc.Prog(ppc64.AMOVBZ) p.From.Type = obj.TYPE_MEM p.From.Reg = v.Args[0].Reg() gc.AddAux(&p.From, v)