blob: 179ac1474e96b4accc52cd393f5608f85fd66834 [file] [log] [blame]
// 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.
/*
Asm, typically invoked as “go tool asm”, assembles the source file into an object
file named for the basename of the argument source file with a .o suffix. The
object file can then be combined with other objects into a package archive.
# Command Line
Usage:
go tool asm [flags] file
The specified file must be a Go assembly file.
The same assembler is used for all target operating systems and architectures.
The GOOS and GOARCH environment variables set the desired target.
Flags:
-D name[=value]
Predefine symbol name with an optional simple value.
Can be repeated to define multiple symbols.
-I dir1 -I dir2
Search for #include files in dir1, dir2, etc,
after consulting $GOROOT/pkg/$GOOS_$GOARCH.
-S
Print assembly and machine code.
-V
Print assembler version and exit.
-debug
Dump instructions as they are parsed.
-dynlink
Support references to Go symbols defined in other shared libraries.
-e
No limit on number of errors reported.
-gensymabis
Write symbol ABI information to output file. Don't assemble.
-o file
Write output to file. The default is foo.o for /a/b/c/foo.s.
-p pkgpath
Set expected package import to pkgpath.
-shared
Generate code that can be linked into a shared library.
-spectre list
Enable spectre mitigations in list (all, ret).
-trimpath prefix
Remove prefix from recorded source file paths.
-v
Print debug output.
Input language:
The assembler uses mostly the same syntax for all architectures,
the main variation having to do with addressing modes. Input is
run through a simplified C preprocessor that implements #include,
#define, #ifdef/endif, but not #if or ##.
For more information, see https://golang.org/doc/asm.
*/
package main