diff --git a/src/cmd/internal/obj/ppc64/asm9.go b/src/cmd/internal/obj/ppc64/asm9.go index 30d7d835f1..77ffec8dc3 100644 --- a/src/cmd/internal/obj/ppc64/asm9.go +++ b/src/cmd/internal/obj/ppc64/asm9.go @@ -905,17 +905,18 @@ func buildop(ctxt *obj.Link) { } sort.Sort(ocmp(optab[:n])) for i := 0; i < n; i++ { - r0 := optab[i].as & obj.AMask + r := optab[i].as + r0 := r & obj.AMask oprange[r0].start = optab[i:] - for optab[i].as&obj.AMask == r0 { + for optab[i].as == r { i++ } oprange[r0].stop = optab[i:] i-- - switch r0 { + switch r { default: - ctxt.Diag("unknown op in build: %v", obj.Aconv(int(optab[i].as))) + ctxt.Diag("unknown op in build: %v", obj.Aconv(int(r))) log.Fatalf("bad code") case ADCBF: /* unary indexed: op (b+a); op (b) */