diff options
| author | Rob Pike <r@golang.org> | 2015-03-05 10:39:23 -0800 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2015-03-05 19:18:46 +0000 |
| commit | 24a43e6a7542c2aefd1e2f16f0daae8100e4bdce (patch) | |
| tree | 7102dfdd47ef77116daca5f9a6ed106a0f681d31 /src/cmd/internal/obj/arm | |
| parent | d5b5d6702ad7d64f189c915225b945a2aa471a38 (diff) | |
| download | go-24a43e6a7542c2aefd1e2f16f0daae8100e4bdce.tar.xz | |
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>
Diffstat (limited to 'src/cmd/internal/obj/arm')
| -rw-r--r-- | src/cmd/internal/obj/arm/5.out.go | 3 | ||||
| -rw-r--r-- | src/cmd/internal/obj/arm/list5.go | 61 | ||||
| -rw-r--r-- | src/cmd/internal/obj/arm/obj5.go | 1 |
3 files changed, 0 insertions, 65 deletions
diff --git a/src/cmd/internal/obj/arm/5.out.go b/src/cmd/internal/obj/arm/5.out.go index 91e96874f0..424dd3d58e 100644 --- a/src/cmd/internal/obj/arm/5.out.go +++ b/src/cmd/internal/obj/arm/5.out.go @@ -32,9 +32,6 @@ package arm import "cmd/internal/obj" -// TODO(ality): remove this workaround. -// It's here because Pconv in liblink/list?.c references %L. - const ( NSNAME = 8 NSYM = 50 diff --git a/src/cmd/internal/obj/arm/list5.go b/src/cmd/internal/obj/arm/list5.go index 321c1f8583..bb2ac20e53 100644 --- a/src/cmd/internal/obj/arm/list5.go +++ b/src/cmd/internal/obj/arm/list5.go @@ -35,67 +35,6 @@ import ( "fmt" ) -const ( - STRINGSZ = 1000 -) - -var extra = []string{ - ".EQ", - ".NE", - ".CS", - ".CC", - ".MI", - ".PL", - ".VS", - ".VC", - ".HI", - ".LS", - ".GE", - ".LT", - ".GT", - ".LE", - "", - ".NV", -} - -var bigP *obj.Prog - -func Pconv(p *obj.Prog) string { - a := int(p.As) - s := int(p.Scond) - sc := extra[(s&C_SCOND)^C_SCOND_XOR] - if s&C_SBIT != 0 { - sc += ".S" - } - if s&C_PBIT != 0 { - sc += ".P" - } - if s&C_WBIT != 0 { - sc += ".W" - } - if s&C_UBIT != 0 { /* ambiguous with FBIT */ - sc += ".U" - } - var str string - if a == obj.ADATA { - str = fmt.Sprintf("%.5d (%v)\t%v\t%v/%d,%v", - p.Pc, p.Line(), obj.Aconv(a), obj.Dconv(p, &p.From), p.From3.Offset, obj.Dconv(p, &p.To)) - } else if p.As == obj.ATEXT { - str = fmt.Sprintf("%.5d (%v)\t%v\t%v,%d,%v", - p.Pc, p.Line(), obj.Aconv(a), obj.Dconv(p, &p.From), p.From3.Offset, obj.Dconv(p, &p.To)) - } else if p.Reg == 0 { - str = fmt.Sprintf("%.5d (%v)\t%v%s\t%v,%v", - p.Pc, p.Line(), obj.Aconv(a), sc, obj.Dconv(p, &p.From), obj.Dconv(p, &p.To)) - } else { - str = fmt.Sprintf("%.5d (%v)\t%v%s\t%v,%v,%v", - p.Pc, p.Line(), obj.Aconv(a), sc, obj.Dconv(p, &p.From), Rconv(int(p.Reg)), obj.Dconv(p, &p.To)) - } - - var fp string - fp += str - return fp -} - func init() { obj.RegisterRegister(obj.RBaseARM, MAXREG, Rconv) obj.RegisterOpcode(obj.ABaseARM, Anames) diff --git a/src/cmd/internal/obj/arm/obj5.go b/src/cmd/internal/obj/arm/obj5.go index ca464b6de6..7c28add64a 100644 --- a/src/cmd/internal/obj/arm/obj5.go +++ b/src/cmd/internal/obj/arm/obj5.go @@ -1045,7 +1045,6 @@ var unaryDst = map[int]bool{ var Linkarm = obj.LinkArch{ ByteOrder: binary.LittleEndian, - Pconv: Pconv, Name: "arm", Thechar: '5', Preprocess: preprocess, |
