]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/asm: make asm -S flag consistent with compile -S flag
authorThan McIntosh <thanm@google.com>
Thu, 17 Sep 2020 19:31:07 +0000 (15:31 -0400)
committerThan McIntosh <thanm@google.com>
Thu, 17 Sep 2020 23:22:25 +0000 (23:22 +0000)
Change things so that the -S command line option for the assembler
works the same as -S in the compiler, e.g. you can use -S=2 to
get additional detail.

Change-Id: I7bdfba39a98e67c7ae4b93019e171b188bb99a2d
Reviewed-on: https://go-review.googlesource.com/c/go/+/255717
Trust: Than McIntosh <thanm@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/cmd/asm/internal/flags/flags.go
src/cmd/asm/main.go

index 1df9df9563e9767f67446da4f2a648e4e4be3d20..64024cc97db052f209e7258c435866642049df5a 100644 (file)
@@ -17,7 +17,6 @@ import (
 var (
        Debug      = flag.Bool("debug", false, "dump instructions as they are parsed")
        OutputFile = flag.String("o", "", "output file; default foo.o for /a/b/c/foo.s as first argument")
-       PrintOut   = flag.Bool("S", false, "print assembly and machine code")
        TrimPath   = flag.String("trimpath", "", "remove prefix from recorded source file paths")
        Shared     = flag.Bool("shared", false, "generate code that can be linked into a shared library")
        Dynlink    = flag.Bool("dynlink", false, "support references to Go symbols defined in other shared libraries")
@@ -28,14 +27,16 @@ var (
 )
 
 var (
-       D MultiFlag
-       I MultiFlag
+       D        MultiFlag
+       I        MultiFlag
+       PrintOut int
 )
 
 func init() {
        flag.Var(&D, "D", "predefined symbol with optional simple value -D=identifier=value; can be set multiple times")
        flag.Var(&I, "I", "include directory; can be set multiple times")
        objabi.AddVersionFlag() // -V
+       objabi.Flagcount("S", "print assembly and machine code", &PrintOut)
 }
 
 // MultiFlag allows setting a value multiple times to collect a list, as in -I=dir1 -I=dir2.
index a6eb44de734fb9525a93670a278021aebbadcb50..fd079a2ccd32ae79dbef9165ae00645616cce919 100644 (file)
@@ -35,9 +35,7 @@ func main() {
        flags.Parse()
 
        ctxt := obj.Linknew(architecture.LinkArch)
-       if *flags.PrintOut {
-               ctxt.Debugasm = 1
-       }
+       ctxt.Debugasm = flags.PrintOut
        ctxt.Flag_dynlink = *flags.Dynlink
        ctxt.Flag_shared = *flags.Shared || *flags.Dynlink
        ctxt.IsAsm = true