aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj/arm
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2015-03-05 10:39:23 -0800
committerRob Pike <r@golang.org>2015-03-05 19:18:46 +0000
commit24a43e6a7542c2aefd1e2f16f0daae8100e4bdce (patch)
tree7102dfdd47ef77116daca5f9a6ed106a0f681d31 /src/cmd/internal/obj/arm
parentd5b5d6702ad7d64f189c915225b945a2aa471a38 (diff)
downloadgo-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.go3
-rw-r--r--src/cmd/internal/obj/arm/list5.go61
-rw-r--r--src/cmd/internal/obj/arm/obj5.go1
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,