// GNUSyntax returns the GNU assembler syntax for the instruction, as defined by GNU binutils. // This form typically matches the syntax defined in the ARM Reference Manual. public static @string GNUSyntax(Inst inst) { bytes.Buffer buf = default; var op = inst.Op.String(); op = saveDot.Replace(op); op = strings.Replace(op, ".", "", -1L); op = strings.Replace(op, "_dot_", ".", -1L); op = strings.ToLower(op); buf.WriteString(op); @string sep = " "; foreach (var(i, arg) in inst.Args) { if (arg == null) { break; } var text = gnuArg(_addr_inst, i, arg); if (text == "") { continue; } buf.WriteString(sep); sep = ", "; buf.WriteString(text); } return(buf.String()); }
public static void MemProf() { // Force heap sampling for determinism. runtime.MemProfileRate = 1L; for (long i = 0L; i < 10L; i++) { fmt.Fprintf(_addr_memProfBuf, "%*d\n", i, i); } memProfStr = memProfBuf.String(); runtime.GC(); var(f, err) = ioutil.TempFile("", "memprof"); if (err != null) { fmt.Fprintln(os.Stderr, err); os.Exit(2L); } { var err__prev1 = err; var err = pprof.WriteHeapProfile(f); if (err != null) { fmt.Fprintln(os.Stderr, err); os.Exit(2L); } err = err__prev1; } var name = f.Name(); { var err__prev1 = err; err = f.Close(); if (err != null) { fmt.Fprintln(os.Stderr, err); os.Exit(2L); } err = err__prev1; } fmt.Println(name); }
/* * Helpers for building cmd/go and cmd/cgo. */ // mkzdefaultcc writes zdefaultcc.go: // // package main // const defaultCC = <defaultcc> // const defaultCXX = <defaultcxx> // const defaultPkgConfig = <defaultpkgconfig> // // It is invoked to write cmd/go/internal/cfg/zdefaultcc.go // but we also write cmd/cgo/zdefaultcc.go private static void mkzdefaultcc(@string dir, @string file) { if (strings.Contains(file, filepath.FromSlash("go/internal/cfg"))) { ref bytes.Buffer buf = ref heap(out ptr <bytes.Buffer> _addr_buf); fmt.Fprintf(_addr_buf, "// Code generated by go tool dist; DO NOT EDIT.\n"); fmt.Fprintln(_addr_buf); fmt.Fprintf(_addr_buf, "package cfg\n"); fmt.Fprintln(_addr_buf); fmt.Fprintf(_addr_buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig); buf.WriteString(defaultCCFunc("DefaultCC", defaultcc)); buf.WriteString(defaultCCFunc("DefaultCXX", defaultcxx)); writefile(buf.String(), file, writeSkipSame); return; }
// Escape comment text for HTML. If nice is set, // also turn `` into “ and '' into ”. private static void commentEscape(io.Writer w, @string text, bool nice) { if (nice) { // In the first pass, we convert `` and '' into their unicode equivalents. // This prevents them from being escaped in HTMLEscape. text = convertQuotes(text); ref bytes.Buffer buf = ref heap(out ptr <bytes.Buffer> _addr_buf); template.HTMLEscape(_addr_buf, (slice <byte>)text); // Now we convert the unicode quotes to their HTML escaped entities to maintain old behavior. // We need to use a temp buffer to read the string back and do the conversion, // otherwise HTMLEscape will escape & to & htmlQuoteReplacer.WriteString(w, buf.String()); return; }
public static @string String(this BuilderMode m) { bytes.Buffer buf = default; if (m & GlobalDebug != 0L) { buf.WriteByte('D'); } if (m & PrintPackages != 0L) { buf.WriteByte('P'); } if (m & PrintFunctions != 0L) { buf.WriteByte('F'); } if (m & LogSource != 0L) { buf.WriteByte('S'); } if (m & SanityCheckFunctions != 0L) { buf.WriteByte('C'); } if (m & NaiveForm != 0L) { buf.WriteByte('N'); } if (m & BuildSerially != 0L) { buf.WriteByte('L'); } return(buf.String()); }
public static @string String(this Inst i) { bytes.Buffer buf = default; buf.WriteString(i.Op.String()); foreach (var(j, arg) in i.Args) { if (arg == null) { break; } if (j == 0L) { buf.WriteString(" "); } else { buf.WriteString(", "); } buf.WriteString(arg.String()); } return(buf.String()); }