diff options
| author | Rob Pike <r@golang.org> | 2015-03-03 10:12:26 -0800 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2015-03-03 18:16:43 +0000 |
| commit | 527b478edb86126d2db98d9a0f619cbc83dce1db (patch) | |
| tree | 7b4bd057dc745abe4f9eb291d381791b1943a9d1 /src/cmd/internal/obj/arm | |
| parent | ec7d8a6167309d2f9d6ee63c20fdfa960ce63bce (diff) | |
| download | go-527b478edb86126d2db98d9a0f619cbc83dce1db.tar.xz | |
cmd/internal/obj/arm: fix arm build
Mishandled the mask for the arm instructions.
TBR=rsc
Change-Id: Idc596097c0fa61dcacdfb4aca5bc6d0b4fd40eeb
Reviewed-on: https://go-review.googlesource.com/6641
Reviewed-by: Rob Pike <r@golang.org>
Diffstat (limited to 'src/cmd/internal/obj/arm')
| -rw-r--r-- | src/cmd/internal/obj/arm/asm5.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/cmd/internal/obj/arm/asm5.go b/src/cmd/internal/obj/arm/asm5.go index 10cca25172..980bbebca6 100644 --- a/src/cmd/internal/obj/arm/asm5.go +++ b/src/cmd/internal/obj/arm/asm5.go @@ -1361,17 +1361,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 AADD: |
