Appendix CUsing the Assembler Command Line
This appendix is organized into the following secitons:
C.1 Assembler Command Line
You invoke the assembler command line as follows:
as [options] [inputfile] ...
|
Note - The language drivers (such as cc and f77) invoke the assembler command line with the fbe
command. You can use either the as or fbe
command to invoke the assembler command line.
The as command translates the assembly language source
files, inputfile, into an executable object file, objfile. The SPARC assembler recognizes the filename argument hyphen (-) as the standard input. It accepts more than one file
name on the command line. The input file is the concatenation of all the specified
files. If an invalid option is given or the command line contains a syntax
error, the SPARC assembler prints the error (including a synopsis of the command
line syntax and options) to standard error output, and then terminates.
The SPARC assembler supports macros, #include files,
and symbolic substitution through use of the C preprocessor cpp.
The assembler invokes the preprocessor before assembly begins if it has been
specified from the command line as an option. (See the -P
option.)
C.2 Assembler Command Line Options
-b This option generates extra symbol
table information for the source code browser.
If the as command line option -P is set, the cpp preprocessor also collects
browser information.
If the as command line option -m is set, this option is ignored as the m4 macro
processor does not generate browser data.
For more information about the SPARCworks SourceBrowser, see the Browsing Source Code manual.
-Dname -Dname=def When the -P
option is in effect, these options are passed to the cpp
preprocessor without interpretation by the as command;
otherwise, they are ignored.
-Ipath When the -P
option is in effect, this option is passed to the cpp preprocessor
without interpretation by the as command; otherwise, it
is ignored.
-K PIC This option generates
position-independent code. This option has the same functionality as the -k option under the SunOS 4.1 SPARC assembler.
Note - -K PIC and -K pic are equivalent.
-L Saves all symbols, including temporary
labels that are normally discarded to save space, in the ELF symbol table.
-m This option runs m4
macro preprocessing on input. The m4 preprocessor is more
powerful than the C preprocessor (invoked by the -P option),
so it is more useful for complex preprocessing. See the m4(1)
man page for more information about the m4 macro-processor.
-n Suppress all warnings while assembling.
-o outfile Takes the next argument as the
name of the output file to be produced. By default, the .s suffix, if present,
is removed from the input file and the .o suffix is appended to form the ouput
file name.
-P Run cpp, the
C preprocessor, on the files being assembled. The preprocessor is run separately
on each input file, not on their concatenation. The preprocessor output is
passed to the assembler.
-Q{y|n} This option produces the "assembler
version" information in the comment section of the output object file
if the y option is specified; if the n
option is specified, the information is suppressed.
-q This option causes the assembler
to perform a quick assembly. Many error-checks are not performed when -q is specified.
Note - This option disables many error checks. It is recommended that
you do not use this option to assemble handwritten assembly
language.
-S[a|b|c|l|A|B|C|L] Produces a disassembly of the emitted
code to the standard output. Adding each of the following characters to the -S option produces:
a - disassembling with address
b - disassembling with ".bof"
c - disassembling with comments
l - disassembling with line numbers
Capital letters turn the switch off for the corresponding option.
-s This option places all stabs in
the ".stabs" section. By default, stabs are placed in "stabs.excl" sections, which are stripped out by the static linker ld during final execution. When the -s option
is used, stabs remain in the final executable because ".stab" sections are
not stripped out by the static linker ld.
-T This is a migration option for
SunOS 4.1 assembly files to be assembled on SunOS 5.x systems. With this option,
the symbol names in SunOS 4.1 assembly files will be interpreted as SunOS 5.x
symbol names. This option can be used in conjunction with the -S option to convert SunOS 4.1 assembly files to their corresponding SunOS 5.x
versions.
-Uname When the -P
option is in effect, this option is passed to the cpp preprocessor
without interpretation by the as command; otherwise, it
is ignored.
-V This option writes the version
information on the standard error output.
-xarch=v7 This option instructs the assembler
to accept instructions defined in the SPARC version 7 (V7) architecture. The
resulting object code is in ELF format.
-xarch=v8 This option instructs the assembler
to accept instructions defined in the SPARC-V8 architecture. The resulting
object code is in ELF format. The quad-precision floating-point instructions
are allowed; however when the program is executed these instructions cause
a hardware exception called "trap" (an illegal instruction trap). The kernel
has the trap handler to emulate the quad precision floating-point arithmetic.
Consequently, all quad precision arithmetic is performed by the emulator in
the kernel.
-xarch=v8a This option instructs the assembler
to accept instructions defined in the SPARC-V8 architecture, less the fsmuld
instruction. The resulting object code is in ELF format. The quad-precision
floating-point instructions are allowed; however when the program is executed
these instructions cause a hardware exception called "trap" (an illegal instruction
trap). The kernel has the trap handler to emulate the quad precision floating-point
arithmetic. Consequently, all quad precision arithmetic is performed by the
emulator in the kernel. This is the default choice of the -xarch= options.
-xarch=v8plus This option instructs the assembler
to accept instructions defined in the SPARC-V9 architecture. The resulting
object code is in ELF format. The quad-precision floating-point instructions
are allowed; however when the program is executed these instructions cause
a hardware exception called "trap" (an illegal instruction trap). The kernel
has the trap handler to emulate the quad precision floating-point arithmetic.
Consequently, all quad precision arithmetic is performed by the emulator in
the kernel. It will not execute on a Solaris V8 system (a machine with a
V8 processor). It will execute on a Solaris V8+ system. This combination is
a SPARC 64-bit processor and a 32-bit OS. For more information regarding SPARC-V9
instructions, see Appendix E, SPARC-V9 Instruction Set.
-xarch=v8plusa This option instructs the assembler
to accept instructions defined in the SPARC-V9 architecture, plus the instructions
in the Visual Instruction Set (VIS). The resulting object code is in V8+ ELF
format. It will not execute on a Solaris V8 system. It will execute on a Solaris
V8+ system. For more information about VIS instructions, see the UltraSPARC Programmer's Reference Manual and the UltraSPARC
User's Guide. The quad-precision floating-point instructions
are allowed; however when the program is executed these instructions cause
a hardware exception called "trap" (an illegal instruction trap). The kernel
has the trap handler to emulate the quad precision floating-point arithmetic.
Consequently, all quad precision arithmetic is performed by the
emulator in the kernel.
-xarch=v9 This option limits instruction
set to the SPARC-V9 architecture. The resulting .o object
files are in 64-bit ELF format and can only be linked with other object files
in the same format. The resulting executable can only be run on a 64-bit SPARC
processor running 64-bit Solaris 7 with the 64-bit kernel.
Note - This option is available only on Solaris 7.
-xarch=v9a This option limits instruction
set to the SPARC-V9 architecture, adding the Visual Instruction Set (VIS)
and extensions specific to UltraSPARC processors. The resulting .o object
files are in 64-bit ELF format and can only be run on a 64-bit SPARC processor
running 64-bit Solaris 7 with the 64-bit kernel.
Note - This option is available only on Solaris 7.
|