cmd/internal/obj: delete all Pconv, replace with Prog.String

Remove the per-achitecture formatter for Prog and replace it with
a global String method. Clean up and regularize the output. Update
tests affected by the format; some tests are made correct now when
they were broken before (and known to be).

Also, related: Change the encoding of the (R1+R2) syntax on ppc64
to be equivalent to (R1)(R2*1), which means it needs no special
handling.

Delete the now unused STRINGSZ constant.

Change-Id: I7f6654d11f80065f3914a3f19353f2f12edfe310
Reviewed-on: https://go-review.googlesource.com/6931
Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
Rob Pike 2015-03-05 10:39:23 -08:00
parent d5b5d6702a
commit 24a43e6a75
18 changed files with 283 additions and 439 deletions

View file

@ -234,7 +234,6 @@ type Plist struct {
}
type LinkArch struct {
Pconv func(*Prog) string
ByteOrder binary.ByteOrder
Name string
Thechar int
@ -382,7 +381,16 @@ type Pciter struct {
// offset = bit mask of registers in list; R0 is low bit.
//
// reg, reg
// TYPE_REGREG2, to be removed.
// Register pair for ARM.
// TYPE_REGREG2
//
// (reg+reg)
// Register pair for PPC64.
// Encoding:
// type = TYPE_MEM
// reg = first register
// index = second register
// scale = 1
//
const (