NAME
fbe - assembler
SPARC SYNOPSIS
fbe [ -hwcap={1|0} ] [ -L ] [ -m ] [ -m32 ] [ -m64 ]
[ -n ] [ -o outfile ] [ -ul ] [ -P ]
[ -Dname ] [ -Dname=def ] [ -Ipath ]
[ -Uname.... ] [ -q ] [ -Q[y|n] ] [ -s ]
[ -S[a|b|c|l|A|B|C|L]] [ -V ] [ -xarch=v ]
[ -xcode={pic13|pic32} ] [ -xF ] [ -Y path ] [ -YI,path ]
filename...
x86 SYNOPSIS
fbe [ -a32 ] [ -m ] [ -m32 ] [ -m64 ] [ -n ]
[ -H ] [ -nH ] [ -o outfile ]
[ -P ] [ -Dname ] [ -Dname=def ] [ -Ipath ] [ -Uname...]
[ -Q[y|n] ] [ -s ] [ -S[a|b|c|l|A|B|C|L]] [ -V ]
[ -xchip=v ] [ -xcode={pic13|pic32} ] [ -xmodel=[a] ]
[ -Y path ] [ -YI,path ] filename...
AVAILABILITY
SPROlang
DESCRIPTION
The fbe command creates object files from assembly language
source files.
COMMON OPTIONS
The following flags are common to both SPARC and x86. They
may be specified in any order.
-Dname
-Dname=def When the -P option is in effect, these options
are passed to the cpp(1) preprocessor without
interpretation by the fbe command; otherwise,
they are ignored.
-Ipath When the -P option is in effect, this option is
passed to the cpp(1) preprocessor without
interpretation by the fbe command; otherwise, it
is ignored.
-i Instructs fbe to ignore line-number information
from the preprocessor.
-m Run the m4(1) macro processor on the input to
the assembler.
-m32|-m64 Generate 32-bit or 64-bit ELF format object
code.
-n Suppress all the warnings while assembling.
-o outfile Put the output of the assembly in outfile. By
default, the output file name is formed by
removing the .s suffix, if there is one, from
the input file name and appending a .o suffix.
-P Run cpp(1), the C preprocessor, on the files
being assembled. The preprocessor is run
separately on each input file, not on their con-
catenation. The preprocessor output is passed
to the assembler.
-Q[y|n] If the y option is specified, it produces the
"assembler version" information in the comment
section of the output object file. If the n
option is specified, the information is
suppressed.
-S[a|b|c|l|A|B|C|L]
Produces a disassembly of the emitted code to
the standard output. Adding each of the follow-
ing 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 switch the corresponding option
off. The default is -Sc.
-s Place all stabs in the .stabs section. By
default, stabs are placed in stabs.excl sec-
tions, which are stripped out by the static
linker, ld(1), during final execution. When the
-s option is used, stabs remain in the final
executable because .stab sections are not
stripped by the static linker.
-Uname When the -P option is in effect, this option is
passed to the cpp(1) preprocessor without
interpretation by the fbe command; otherwise, it
is ignored.
-V Write the version number of the assembler being
run on the standard error output.
-xcode=pic13
Generates position-independent code for use in
shared libraries (small model). Equivalent to
obsolete option -K pic.
-xcode=pic32
Generates position-independent code for use in
shared libraries (large model). Equivalent to
obsolete option -K PIC.
-Y path Specify directory for m4 and/or cm4def
-YI,path Indicate path to search for #include header
files.
SPARC Options
-hwcap={1|0} Emit/suppress the generation of the Hardware
Capabilities section. Default is to generate
the section.
-L Save all symbols, including temporary labels
that are normally discarded to save space, in
the ELF symbol table.
-q Perform a quick assembly. When the -q option is
used, many error checks are not performed.
Note: This option disables many error checks.
It is recommended that you do not use this
option to assemble handwritten assembly
language.
-ul Treat all undefined symbols as local.
-xarch=sparc Enables the assembler to accept instructions
defined in the SPARC-V9 architecture. The
resulting object code is in ELF32 format when
compiled with -m32, ELF64 format with -m64. It
will not execute on a Oracle Solaris V8 system
(a machine with a V8 processor). It will exe-
cute on a Oracle Solaris V8+ system.
-xarch=sparcvis
Enables the assembler to accept instructions
defined in the SPARC-V9 architecture plus the
instructions in the Visual Instruction Set
(VIS) version 1.0. The resulting object code
is in V8+ ELF32 format when compiled with -m32,
ELF64 format with -m64. It will not execute on
a Oracle Solaris system with a V8 processor. It
will execute on a Oracle Solaris system with a
V8+ processor.
-xarch=sparcvis2
Enables the assembler to accept instructions
defined in the SPARC-V9 architecture, plus the
instructions in the Visual Instruction Set
(VIS) version 2.0, with UltraSPARC-III exten-
sions. The resulting object code is in V8+
ELF32 format when compiled with -m32, ELF64
format with -m64.
-xarch=sparcvis3
Accept instructions defined for the SPARC VIS
version 3 of the SPARC-V9 ISA which are
instructions from the SPARC-V9 instruction set,
plus the UltraSPARC extensions, including the
Visual Instruction Set (VIS) version 1.0, the
UltraSPARC-III extensions, including the Visual
Instruction Set (VIS) version 2.0, the fused
multiply-add instructions, and the Visual
Instruction Set (VIS) version 3.0
-xarch=sparcfmaf
Accept instructions defined for the sparcfmaf
version of the SPARC-V9 ISA, plus the
UltraSPARC extensions, including the Visual
Instruction Set (VIS) version 1.0, the
UltraSPARC-III extensions, including the Visual
Instruction Set (VIS) version 2.0, and the
SPARC64 VI extensions for floating-point
multiply-add.
-xarch=sparcima
Accept instructions defined for the sparcima
version of the SPARC-V9 ISA which are instruc-
tions from the SPARC-V9 instruction set, plus
the UltraSPARC extensions, including the Visual
Instruction Set (VIS) version 1.0, the
UltraSPARC-III extensions, including the Visual
Instruction Set (VIS) version 2.0, the SPARC64
VI extensions for floating-point multiply-add,
and the SPARC64 VII extensions for integer
multiply-add.
-xarch=sparc4
Accept instructions defined for the sparc4 ver-
sion of the SPARC-V9 ISA which are instructions
from the SPARC-V9 instruction set, plus the
extensions, which includes VIS 1.0, the
UltraSPARC-III extensions, which includes VIS
2.0, the fused floating-point multiply-add
instructions, VIS 3.0, and SPARC4 instructions.
-xF Generates additional information for perfor-
mance analysis of the executable using SPARC-
works analyzer. If the input file does not
contain any stabs (debugging directives), then
the assembler will generate some default stabs
which are needed by the Oracle Solaris Studio
analyzer. Also see the dbx(1) manual page.
x86 Options
-a32 Allow 32-bit addresses in 64-bit mode.
-H Generate the Hardware Capabilities section.
(Default)
-nH Suppress the generation of the Hardware Capa-
bilities section
-xchip=v When there is a choice between several possible
encodings, choose the one which is supposedly
faster on the given chip. In particular, the
no-op byte sequence to fill code alignment pad-
ding. (See the cc(1) man page for accepted
-xchip x86 values.)
-xmodel=[small | kernel]
For AMD64 (-m64) only, generate R_X86_64_32S
relocatable type for static data access
under kernel. Otherwise, generate R_X86_64_32
under small. small is the default.
ENVIRONMENT
TMPDIR
fbe normally creates temporary files in the directory /tmp.
You may specify another directory by setting the environ-
ment variable TMPDIR to your chosen directory. (If TMPDIR
isn't a valid directory, then fbe will use /tmp).
FILES
By default, fbe creates its temporary files in /tmp.
SEE ALSO
attributes(5), cc(1), cpp(1), ld(1), m4(1), nm(1), strip(1),
tmpnam(3S), a.out(4)
NOTES
On SPARC platforms, the cpp symbol __sparc is set when the
flag -P appears, as well as __sparcv8 with the -m32 flag,
and __sparcv9 with the -m64 flag.
On x86/x64, the symbol __i386 is set when the flag -P
appears, as well as __amd64 with the -m64 flag.
If the -m (invoke the m4(1) macro processor) option is used,
keywords for m4(1) cannot be used as symbols (variables,
functions, labels) in the input file since m4(1) cannot
determine which keywords are assembler symbols and which
keywords are real m4(1) macros.
Whenever possible, you should access the assembler through a
compilation system interface program such as cc(1).
All undefined symbols are treated as global.