From 24a43e6a7542c2aefd1e2f16f0daae8100e4bdce Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Thu, 5 Mar 2015 10:39:23 -0800 Subject: 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 --- src/cmd/internal/obj/arm/5.out.go | 3 -- src/cmd/internal/obj/arm/list5.go | 61 --------------------------------------- src/cmd/internal/obj/arm/obj5.go | 1 - 3 files changed, 65 deletions(-) (limited to 'src/cmd/internal/obj/arm') 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, -- cgit v1.3-5-g9baa