1
0
mirror of https://github.com/golang/go synced 2024-11-24 00:40:12 -07:00

cmd/dist: update for portable Prog, Addr

There are no D_ names anymore.

Change-Id: Id3f1ce5efafb93818e5fd16c47ff48bbf61b5339
Reviewed-on: https://go-review.googlesource.com/3520
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
This commit is contained in:
Russ Cox 2015-01-26 15:16:24 -05:00
parent da47902d02
commit d968bda66f

View File

@ -7,7 +7,6 @@ package main
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"strconv"
"strings" "strings"
) )
@ -50,8 +49,7 @@ func gcopnames(dir, file string) {
// mkanames reads [5689].out.h and writes anames[5689].c // mkanames reads [5689].out.h and writes anames[5689].c
// The format is much the same as the Go opcodes above. // The format is much the same as the Go opcodes above.
// It also writes out cnames array for C_* constants and the dnames // It also writes out cnames array for C_* constants.
// array for D_* constants.
func mkanames(dir, file string) { func mkanames(dir, file string) {
ch := file[len(file)-3] ch := file[len(file)-3]
targ := pathf("%s/../cmd/%cl/%c.out.h", dir, ch, ch) targ := pathf("%s/../cmd/%cl/%c.out.h", dir, ch, ch)
@ -105,66 +103,5 @@ func mkanames(dir, file string) {
out.Write(out2.Bytes()) out.Write(out2.Bytes())
} }
var dnames [128][]string
j = 0
unknown := false
n := -1
for _, line := range lines {
if strings.HasPrefix(line, "\tD_") {
if i := strings.Index(line, ","); i >= 0 {
line = line[:i]
}
// Parse explicit value, if any
if i := strings.Index(line, "="); i >= 0 {
value := strings.TrimSpace(line[i+1:])
line = strings.TrimSpace(line[:i])
var err error
n, err = strconv.Atoi(value)
if err != nil {
// We can't do anything about
// non-numeric values or anything that
// follows.
unknown = true
continue
}
unknown = false
} else {
n++
}
if unknown || n < 0 || n >= len(dnames) {
continue
}
line = strings.TrimSpace(line)
line = line[len("D_"):]
if strings.Contains(line, "LAST") {
continue
}
dnames[n] = append(dnames[n], line)
j++
}
}
if j > 0 {
fmt.Fprintf(&out, "char* dnames%c[D_LAST] = {\n", ch)
for _, d := range dnames {
if len(d) == 0 {
continue
}
fmt.Fprintf(&out, "\t[D_%s] = \"", d[0])
for k, name := range d {
if k > 0 {
fmt.Fprintf(&out, "/")
}
fmt.Fprintf(&out, "%s", name)
}
fmt.Fprintf(&out, "\",\n")
}
fmt.Fprintf(&out, "};\n")
}
writefile(out.String(), file, 0) writefile(out.String(), file, 0)
} }