1
0
mirror of https://github.com/golang/go synced 2024-11-19 09:04:41 -07:00

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>
This commit is contained in:
Rob Pike 2015-03-03 10:12:26 -08:00
parent ec7d8a6167
commit 527b478edb

View File

@ -1361,17 +1361,18 @@ func buildop(ctxt *obj.Link) {
sort.Sort(ocmp(optab[:n])) sort.Sort(ocmp(optab[:n]))
for i := 0; i < n; i++ { 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:] oprange[r0].start = optab[i:]
for optab[i].as&obj.AMask == r0 { for optab[i].as == r {
i++ i++
} }
oprange[r0].stop = optab[i:] oprange[r0].stop = optab[i:]
i-- i--
switch r0 { switch r {
default: 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") log.Fatalf("bad code")
case AADD: case AADD: