]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: On PPC, nilcheck load should be MOVBZ
authorDavid Chase <drchase@google.com>
Mon, 26 Sep 2016 15:32:49 +0000 (08:32 -0700)
committerDavid Chase <drchase@google.com>
Mon, 26 Sep 2016 17:01:00 +0000 (17:01 +0000)
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 <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Munday <munday@ca.ibm.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/ppc64/ssa.go

index e3e6864db097a3c2aac2ab870c03ba86731d6373..67fab94bb0ce3d8ed545a260e1b47fdd68b2d860 100644 (file)
@@ -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)