This is a follow up to rev
443a32e707d2 which reduces some of the
duplication between methods and functions that operate on obj.Biobuf.
obj.Biobuf has Flush and Write methods as well as helpers which duplicate
those methods, consolidate on the former and remove the latter.
Also, address a final comment from CL 9525.
Change-Id: I67deaf3a163bb489a9bb21bb39524785d7a2f6c5
Reviewed-on: https://go-review.googlesource.com/9527
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
gc.Thearch.FREGMAX = x86.REG_X7
default:
fmt.Fprintf(os.Stderr, "unsupported setting GO386=%s\n", v)
- os.Exit(1)
+ gc.Exit(1)
}
gc.Thearch.MAXWIDTH = MAXWIDTH
gc.Thearch.ReservedRegs = resvd
var ok bool
testOut = new(bytes.Buffer) // The assembler writes -S output to this buffer.
ctxt.Bso = obj.Binitw(os.Stdout)
- defer obj.Bflush(ctxt.Bso)
+ defer ctxt.Bso.Flush()
ctxt.Diag = log.Fatalf
obj.Binitw(ioutil.Discard)
pList.Firstpc, ok = parser.Parse()
ctxt.Flag_shared = 1
}
ctxt.Bso = obj.Binitw(os.Stdout)
- defer obj.Bflush(ctxt.Bso)
+ defer ctxt.Bso.Flush()
ctxt.Diag = log.Fatalf
output := obj.Binitw(fd)
fmt.Fprintf(output, "go object %s %s %s\n", obj.Getgoos(), obj.Getgoarch(), obj.Getgoversion())
os.Exit(1)
}
obj.Writeobjdirect(ctxt, output)
- obj.Bflush(output)
+ output.Flush()
}
if assemble(flag.Arg(0)) != 0 {
errorexit()
}
- obj.Bflush(&bstdout)
+ bstdout.Flush()
if nerrors > 0 {
errorexit()
}
}
obj.Writeobjdirect(Ctxt, &obuf)
- obj.Bflush(&obuf)
+ obuf.Flush()
return 0
}
}
func errorexit() {
- obj.Bflush(&bstdout)
+ bstdout.Flush()
if outfile != "" {
os.Remove(outfile)
}
if writearchive != 0 {
obj.Bwritestring(bout, "!<arch>\n")
arhdr = [ArhdrSize]byte{}
- obj.Bwrite(bout, arhdr[:])
+ bout.Write(arhdr[:])
startobj = obj.Boffset(bout)
}
dumpexport()
if writearchive != 0 {
- obj.Bflush(bout)
+ bout.Flush()
size := obj.Boffset(bout) - startobj
if size&1 != 0 {
obj.Bputc(bout, 0)
}
obj.Bseek(bout, startobj-ArhdrSize, 0)
formathdr(arhdr[:], "__.PKGDEF", size)
- obj.Bwrite(bout, arhdr[:])
- obj.Bflush(bout)
+ bout.Write(arhdr[:])
+ bout.Flush()
obj.Bseek(bout, startobj+size+(size&1), 0)
arhdr = [ArhdrSize]byte{}
- obj.Bwrite(bout, arhdr[:])
+ bout.Write(arhdr[:])
startobj = obj.Boffset(bout)
fmt.Fprintf(bout, "go object %s %s %s %s\n", obj.Getgoos(), obj.Getgoarch(), obj.Getgoversion(), obj.Expstring())
}
obj.Writeobjdirect(Ctxt, bout)
if writearchive != 0 {
- obj.Bflush(bout)
+ bout.Flush()
size := obj.Boffset(bout) - startobj
if size&1 != 0 {
obj.Bputc(bout, 0)
obj.Bseek(bout, startobj-ArhdrSize, 0)
name := fmt.Sprintf("_go_.%c", Thearch.Thechar)
formathdr(arhdr[:], name, size)
- obj.Bwrite(bout, arhdr[:])
+ bout.Write(arhdr[:])
}
obj.Bterm(bout)
}
func Flusherrors() {
- obj.Bflush(&bstdout)
+ bstdout.Flush()
if len(errors) == 0 {
return
}
if autosize == 0 && cursym.Text.Mark&LEAF == 0 {
if ctxt.Debugvlog != 0 {
fmt.Fprintf(ctxt.Bso, "save suppressed in: %s\n", cursym.Name)
- obj.Bflush(ctxt.Bso)
+ ctxt.Bso.Flush()
}
cursym.Text.Mark |= LEAF
* strip NOPs
* expand RET
*/
- obj.Bflush(ctxt.Bso)
+ ctxt.Bso.Flush()
q := (*obj.Prog)(nil)
var q1 *obj.Prog
for p := cursym.Text; p != nil; p = p.Link {
if ctxt.Debugvlog != 0 {
fmt.Fprintf(ctxt.Bso, "save suppressed in: %s\n", cursym.Text.From.Sym.Name)
}
- obj.Bflush(ctxt.Bso)
+ ctxt.Bso.Flush()
cursym.Text.Mark |= LEAF
}
}
p[0] = uint8(v)
p = p[1:]
- Bwrite(b, varintbuf[:len(varintbuf)-len(p)])
+ b.Write(varintbuf[:len(varintbuf)-len(p)])
}
func wrstring(b *Biobuf, s string) {
func wrdata(b *Biobuf, v []byte) {
wrint(b, int64(len(v)))
- Bwrite(b, v)
+ b.Write(v)
}
func wrpathsym(ctxt *Link, b *Biobuf, s *LSym) {
if ctxt.Debugvlog != 0 {
fmt.Fprintf(ctxt.Bso, "%5.2f noops\n", obj.Cputime())
}
- obj.Bflush(ctxt.Bso)
+ ctxt.Bso.Flush()
var q *obj.Prog
var q1 *obj.Prog
} else if cursym.Text.Mark&LEAF == 0 {
if ctxt.Debugvlog != 0 {
fmt.Fprintf(ctxt.Bso, "save suppressed in: %s\n", cursym.Name)
- obj.Bflush(ctxt.Bso)
+ ctxt.Bso.Flush()
}
cursym.Text.Mark |= LEAF
return b.w.Flush()
}
-func Bwrite(b *Biobuf, p []byte) (int, error) {
- return b.w.Write(p)
-}
-
func Bputc(b *Biobuf, c byte) {
b.w.WriteByte(c)
}
b.numUnget++
}
-func Bflush(b *Biobuf) error {
- return b.w.Flush()
-}
-
func Bterm(b *Biobuf) error {
var err error
if b.w != nil {