Commit 69a143e3 authored by Michael Hudson-Doyle's avatar Michael Hudson-Doyle

cmd/internal/obj: remove dead code and small cleanups

Change-Id: I88fa0cc245a2141af04acced8716e08b1133abd1
Reviewed-on: https://go-review.googlesource.com/14350Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 74a123fc
...@@ -319,6 +319,7 @@ func Main() { ...@@ -319,6 +319,7 @@ func Main() {
dclcontext = PEXTERN dclcontext = PEXTERN
nerrors = 0 nerrors = 0
lexlineno = 1 lexlineno = 1
const BOM = 0xFEFF
for _, infile = range flag.Args() { for _, infile = range flag.Args() {
linehistpush(infile) linehistpush(infile)
...@@ -338,7 +339,7 @@ func Main() { ...@@ -338,7 +339,7 @@ func Main() {
curio.last = 0 curio.last = 0
// Skip initial BOM if present. // Skip initial BOM if present.
if obj.Bgetrune(curio.bin) != obj.BOM { if obj.Bgetrune(curio.bin) != BOM {
obj.Bungetrune(curio.bin) obj.Bungetrune(curio.bin)
} }
...@@ -601,11 +602,11 @@ func findpkg(name string) (file string, ok bool) { ...@@ -601,11 +602,11 @@ func findpkg(name string) (file string, ok bool) {
// if there is an array.6 in the array.a library, // if there is an array.6 in the array.a library,
// want to find all of array.a, not just array.6. // want to find all of array.a, not just array.6.
file = fmt.Sprintf("%s.a", name) file = fmt.Sprintf("%s.a", name)
if obj.Access(file, 0) >= 0 { if _, err := os.Stat(file); err == nil {
return file, true return file, true
} }
file = fmt.Sprintf("%s.o", name) file = fmt.Sprintf("%s.o", name)
if obj.Access(file, 0) >= 0 { if _, err := os.Stat(file); err == nil {
return file, true return file, true
} }
return "", false return "", false
...@@ -623,11 +624,11 @@ func findpkg(name string) (file string, ok bool) { ...@@ -623,11 +624,11 @@ func findpkg(name string) (file string, ok bool) {
for p := idirs; p != nil; p = p.link { for p := idirs; p != nil; p = p.link {
file = fmt.Sprintf("%s/%s.a", p.dir, name) file = fmt.Sprintf("%s/%s.a", p.dir, name)
if obj.Access(file, 0) >= 0 { if _, err := os.Stat(file); err == nil {
return file, true return file, true
} }
file = fmt.Sprintf("%s/%s.o", p.dir, name) file = fmt.Sprintf("%s/%s.o", p.dir, name)
if obj.Access(file, 0) >= 0 { if _, err := os.Stat(file); err == nil {
return file, true return file, true
} }
} }
...@@ -644,11 +645,11 @@ func findpkg(name string) (file string, ok bool) { ...@@ -644,11 +645,11 @@ func findpkg(name string) (file string, ok bool) {
} }
file = fmt.Sprintf("%s/pkg/%s_%s%s%s/%s.a", goroot, goos, goarch, suffixsep, suffix, name) file = fmt.Sprintf("%s/pkg/%s_%s%s%s/%s.a", goroot, goos, goarch, suffixsep, suffix, name)
if obj.Access(file, 0) >= 0 { if _, err := os.Stat(file); err == nil {
return file, true return file, true
} }
file = fmt.Sprintf("%s/pkg/%s_%s%s%s/%s.o", goroot, goos, goarch, suffixsep, suffix, name) file = fmt.Sprintf("%s/pkg/%s_%s%s%s/%s.o", goroot, goos, goarch, suffixsep, suffix, name)
if obj.Access(file, 0) >= 0 { if _, err := os.Stat(file); err == nil {
return file, true return file, true
} }
} }
......
...@@ -147,7 +147,6 @@ func OPBIT(x uint32) uint32 { ...@@ -147,7 +147,6 @@ func OPBIT(x uint32) uint32 {
const ( const (
LFROM = 1 << 0 LFROM = 1 << 0
LTO = 1 << 1 LTO = 1 << 1
LPOOL = 1 << 2
) )
var optab = []Optab{ var optab = []Optab{
......
...@@ -239,21 +239,6 @@ func setaddr(ctxt *Link, s *LSym, off int64, t *LSym) int64 { ...@@ -239,21 +239,6 @@ func setaddr(ctxt *Link, s *LSym, off int64, t *LSym) int64 {
return setaddrplus(ctxt, s, off, t, 0) return setaddrplus(ctxt, s, off, t, 0)
} }
func addsize(ctxt *Link, s *LSym, t *LSym) int64 {
if s.Type == 0 {
s.Type = SDATA
}
i := s.Size
s.Size += int64(ctxt.Arch.Ptrsize)
Symgrow(ctxt, s, s.Size)
r := Addrel(s)
r.Sym = t
r.Off = int32(i)
r.Siz = uint8(ctxt.Arch.Ptrsize)
r.Type = R_SIZE
return i + int64(r.Siz)
}
func addaddrplus4(ctxt *Link, s *LSym, t *LSym, add int64) int64 { func addaddrplus4(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
if s.Type == 0 { if s.Type == 0 {
s.Type = SDATA s.Type = SDATA
......
...@@ -17,18 +17,11 @@ package obj ...@@ -17,18 +17,11 @@ package obj
const ( const (
FmtWidth = 1 << iota FmtWidth = 1 << iota
FmtLeft FmtLeft
FmtPrec
FmtSharp FmtSharp
FmtSpace
FmtSign FmtSign
FmtApost
FmtZero
FmtUnsigned FmtUnsigned
FmtShort FmtShort
FmtLong FmtLong
FmtVLong
FmtComma FmtComma
FmtByte FmtByte
FmtLDouble
FmtFlag
) )
...@@ -74,6 +74,5 @@ const ( ...@@ -74,6 +74,5 @@ const (
PCDATA_StackMapIndex = 0 PCDATA_StackMapIndex = 0
FUNCDATA_ArgsPointerMaps = 0 FUNCDATA_ArgsPointerMaps = 0
FUNCDATA_LocalsPointerMaps = 1 FUNCDATA_LocalsPointerMaps = 1
FUNCDATA_DeadValueMaps = 2
ArgsSizeUnknown = -0x80000000 ArgsSizeUnknown = -0x80000000
) )
// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package obj
const (
AEXIST = 0
BOM = 0xFEFF
)
var GOEXPERIMENT string
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package obj
// Garbage collector liveness bitmap generation.
// The command line flag -live causes this code to print debug information.
// The levels are:
//
// -live (aka -live=1): print liveness lists as code warnings at safe points
// -live=2: print an assembly listing with liveness annotations
// -live=3: print information during each computation phase (much chattier)
//
// Each level includes the earlier output as well.
// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Used by cmd/gc.
const (
InsData = 1 + iota
InsArray
InsArrayEnd
InsEnd
MaxGCMask = 65536
)
...@@ -107,8 +107,6 @@ import ( ...@@ -107,8 +107,6 @@ import (
"strings" "strings"
) )
var outfile string
// The Go and C compilers, and the assembler, call writeobj to write // The Go and C compilers, and the assembler, call writeobj to write
// out a Go object file. The linker does not call this; the linker // out a Go object file. The linker does not call this; the linker
// does not write out object files. // does not write out object files.
......
...@@ -107,12 +107,7 @@ func Linknew(arch *LinkArch) *Link { ...@@ -107,12 +107,7 @@ func Linknew(arch *LinkArch) *Link {
// On arm, record goarm. // On arm, record goarm.
if ctxt.Arch.Thechar == '5' { if ctxt.Arch.Thechar == '5' {
p := Getgoarm() ctxt.Goarm = Getgoarm()
if p != "" {
ctxt.Goarm = int32(Atoi(p))
} else {
ctxt.Goarm = 6
}
} }
return ctxt return ctxt
......
...@@ -11,7 +11,6 @@ import ( ...@@ -11,7 +11,6 @@ import (
"io" "io"
"log" "log"
"os" "os"
"strconv"
"strings" "strings"
"time" "time"
) )
...@@ -166,17 +165,6 @@ func Brdstr(b *Biobuf, delim int, cut int) string { ...@@ -166,17 +165,6 @@ func Brdstr(b *Biobuf, delim int, cut int) string {
return s return s
} }
func Access(name string, mode int) int {
if mode != 0 {
panic("bad access")
}
_, err := os.Stat(name)
if err != nil {
return -1
}
return 0
}
func Blinelen(b *Biobuf) int { func Blinelen(b *Biobuf) int {
return b.linelen return b.linelen
} }
...@@ -212,10 +200,14 @@ func Getgoos() string { ...@@ -212,10 +200,14 @@ func Getgoos() string {
return envOr("GOOS", defaultGOOS) return envOr("GOOS", defaultGOOS)
} }
func Getgoarm() string { func Getgoarm() int32 {
switch v := envOr("GOARM", defaultGOARM); v { switch v := envOr("GOARM", defaultGOARM); v {
case "5", "6", "7": case "5":
return v return 5
case "6":
return 6
case "7":
return 7
} }
// Fail here, rather than validate at multiple call sites. // Fail here, rather than validate at multiple call sites.
log.Fatalf("Invalid GOARM value. Must be 5, 6, or 7.") log.Fatalf("Invalid GOARM value. Must be 5, 6, or 7.")
...@@ -235,11 +227,6 @@ func Getgoversion() string { ...@@ -235,11 +227,6 @@ func Getgoversion() string {
return version return version
} }
func Atoi(s string) int {
i, _ := strconv.Atoi(s)
return i
}
func (p *Prog) Line() string { func (p *Prog) Line() string {
return p.Ctxt.LineHist.LineString(int(p.Lineno)) return p.Ctxt.LineHist.LineString(int(p.Lineno))
} }
......
...@@ -40,8 +40,6 @@ import ( ...@@ -40,8 +40,6 @@ import (
// Instruction layout. // Instruction layout.
const ( const (
MaxAlign = 32 // max data alignment
// Loop alignment constants: // Loop alignment constants:
// want to align loop entry to LoopAlign-byte boundary, // want to align loop entry to LoopAlign-byte boundary,
// and willing to insert at most MaxLoopPad bytes of NOP to do so. // and willing to insert at most MaxLoopPad bytes of NOP to do so.
...@@ -175,7 +173,6 @@ const ( ...@@ -175,7 +173,6 @@ const (
Zil_rp Zil_rp
Ziq_rp Ziq_rp
Zilo_m Zilo_m
Ziqo_m
Zjmp Zjmp
Zjmpcon Zjmpcon
Zloop Zloop
...@@ -225,14 +222,10 @@ const ( ...@@ -225,14 +222,10 @@ const (
Py1 = 0x81 // symbolic; exact value doesn't matter Py1 = 0x81 // symbolic; exact value doesn't matter
Py3 = 0x83 // symbolic; exact value doesn't matter Py3 = 0x83 // symbolic; exact value doesn't matter
Rxf = 1 << 9 /* internal flag for Rxr on from */
Rxt = 1 << 8 /* internal flag for Rxr on to */
Rxw = 1 << 3 /* =1, 64-bit operand size */ Rxw = 1 << 3 /* =1, 64-bit operand size */
Rxr = 1 << 2 /* extend modrm reg */ Rxr = 1 << 2 /* extend modrm reg */
Rxx = 1 << 1 /* extend sib index */ Rxx = 1 << 1 /* extend sib index */
Rxb = 1 << 0 /* extend modrm r/m, sib base, or opcode reg */ Rxb = 1 << 0 /* extend modrm r/m, sib base, or opcode reg */
Maxand = 10 /* in -a output width of the byte codes */
) )
var ycover [Ymax * Ymax]uint8 var ycover [Ymax * Ymax]uint8
...@@ -245,11 +238,6 @@ var ynone = []ytab{ ...@@ -245,11 +238,6 @@ var ynone = []ytab{
{Ynone, Ynone, Ynone, Zlit, 1}, {Ynone, Ynone, Ynone, Zlit, 1},
} }
var ysahf = []ytab{
{Ynone, Ynone, Ynone, Zlit, 2},
{Ynone, Ynone, Ynone, Zlit, 1},
}
var ytext = []ytab{ var ytext = []ytab{
{Ymb, Ynone, Ytextsize, Zpseudo, 0}, {Ymb, Ynone, Ytextsize, Zpseudo, 0},
{Ymb, Yi32, Ytextsize, Zpseudo, 1}, {Ymb, Yi32, Ytextsize, Zpseudo, 1},
......
...@@ -10,6 +10,7 @@ import ( ...@@ -10,6 +10,7 @@ import (
"fmt" "fmt"
"log" "log"
"sort" "sort"
"strconv"
"strings" "strings"
) )
...@@ -191,8 +192,8 @@ func ldpe(f *obj.Biobuf, pkg string, length int64, pn string) { ...@@ -191,8 +192,8 @@ func ldpe(f *obj.Biobuf, pkg string, length int64, pn string) {
if peobj.sect[i].name[0] != '/' { if peobj.sect[i].name[0] != '/' {
continue continue
} }
l = uint32(obj.Atoi(peobj.sect[i].name[1:])) n, _ := strconv.Atoi(peobj.sect[i].name[1:])
peobj.sect[i].name = cstring(peobj.snames[l:]) peobj.sect[i].name = cstring(peobj.snames[n:])
} }
// read symbols // read symbols
......
...@@ -421,7 +421,7 @@ func loadinternal(name string) { ...@@ -421,7 +421,7 @@ func loadinternal(name string) {
if Debug['v'] != 0 { if Debug['v'] != 0 {
fmt.Fprintf(&Bso, "searching for %s.a in %s\n", name, shlibname) fmt.Fprintf(&Bso, "searching for %s.a in %s\n", name, shlibname)
} }
if obj.Access(shlibname, obj.AEXIST) >= 0 { if _, err := os.Stat(shlibname); err == nil {
addlibpath(Ctxt, "internal", "internal", "", name, shlibname) addlibpath(Ctxt, "internal", "internal", "", name, shlibname)
found = 1 found = 1
break break
...@@ -431,7 +431,7 @@ func loadinternal(name string) { ...@@ -431,7 +431,7 @@ func loadinternal(name string) {
if Debug['v'] != 0 { if Debug['v'] != 0 {
fmt.Fprintf(&Bso, "searching for %s.a in %s\n", name, pname) fmt.Fprintf(&Bso, "searching for %s.a in %s\n", name, pname)
} }
if obj.Access(pname, obj.AEXIST) >= 0 { if _, err := os.Stat(pname); err == nil {
addlibpath(Ctxt, "internal", "internal", pname, name, "") addlibpath(Ctxt, "internal", "internal", pname, name, "")
found = 1 found = 1
break break
......
...@@ -144,12 +144,7 @@ func linknew(arch *LinkArch) *Link { ...@@ -144,12 +144,7 @@ func linknew(arch *LinkArch) *Link {
// On arm, record goarm. // On arm, record goarm.
if ctxt.Arch.Thechar == '5' { if ctxt.Arch.Thechar == '5' {
p := obj.Getgoarm() ctxt.Goarm = obj.Getgoarm()
if p != "" {
ctxt.Goarm = int32(obj.Atoi(p))
} else {
ctxt.Goarm = 6
}
} }
return ctxt return ctxt
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment