Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

fbe(1)

Name

fbe - assembler

Synopsis

SPARC

fbe [ -hwcap={1|0} ] [ -L ] [ -m ] [ -m32 ] [ -m64 ]
     [ -n ] [ -o outfile ] [ -ul ] [ -P ]
     [ -Dname ] [ -Dname=def ] [ -Ipath ]
     [ -Uname....  ] [ -Q[y|n] ] [ -s ]
     [ -S[a|b|c|l|A|B|C|L]] [ -V ] [ -xarch=v ]
     [ -xdecouple=[dcti,no%dcti] ] [ -xF ] [ -Y[m|c],path ]
     [ -YI,path ] filename...

x86

fbe [ -a32 ] [ -m ] [ -m32 ] [ -m64 ] [ -n ]
     [ -H ] [ -nH ] [ -o outfile ]
     [ -P ] [ -Dname ] [ -Dname=def ] [ -Ipath ] [ -Uname...]
     [ -KPIC ] [ -Q[y|n] ] [ -remove_empty_sect ]
     [ -s ] [ -S[a|b|c|l|A|B|C|L]] [ -V ]
     [ -xchip=v ] [ -xmodel=[a] ]
     [ -Y[m|d],path ] [ -YI,path ] filename...

AVAILABILITY

SPROlang

Description

The fbe command creates object files from assembly language source files.

Options

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 concatenation. 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 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 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 sections, 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.

-Ym,path

Specify path to the version of m4 to use.

-YI,path

Indicate path to search for #include header files.

SPARC Options

-hwcap={1|0}

Enable (1) or suppress (0) 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.

-ul

Treat all undefined symbols as local.

-Yc,path

Specify path to the version of cpp to use.

-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 execute 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 extensions. 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 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 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 version 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.

-xarch=sparc4b

Enables the compiler to use instructions from the SPARC-V9 instruction set, plus the UltraSPARC extensions, which includes VIS 1.0, the UltraSPARC-III extensions, which includes VIS2.0, the SPARC64 VI extensions for floating-point multiply-add, the SPARC64 VII extensions for integer multiply-add, and the PAUSE and CBCOND instructions from the SPARC T4 extensions.

-xarch=sparc4c

Enables the compiler to use instructions from the SPARC-V9 instruction set, plus the UltraSPARC extensions, which includes VIS 1.0, the UltraSPARC-III extensions, which includes VIS2.0, the SPARC64 VI extensions for floating-point multiply-add, the SPARC64 VII extensions for integer multiply-add, the VIS3B subset of the VIS 3.0 instructions a subset of the SPARC T3 extensions, called the VIS3B subset of VIS 3.0, and the PAUSE and CBCOND instructions from the SPARC T4 extensions.

-xarch=sparc5

Accept instructions defined for the sparc5 version 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, SPARC4, and SPARC5 instructions.

-xarch=sparcace

Accept instructions defined for the sparcace version 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 SPARC64 VI extensions for floating-point multiply-add, and the SPARC64 VII extensions for integer multiply-add, and SPARCACE instructions.

-xarch=sparcaceplus

Accept instructions defined for the sparcaceplus version 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 SPARC64 VI extensions for floating-point multiply-add, and the SPARC64 VII extensions for integer multiply-add, SPARCACE, and SPARCACEPLUS instructions.

-xarch=v9

Equivalent to -m64 -xarch=sparc.

-xarch=v9a

Equivalent to -m64 -xarch=sparcvis.

-xarch=v9b

Equivalent to -m64 -xarch=sparcvis2.

-xdecouple=[dcti,no%dcti]

Delayed control transfer instruction (DCTI) couples are an undesirable code sequence for the SPARC architecture. –xdecouple=dcti prompts the assembler to insert a no operation (NOP) instruction between the couple. –xdecouple=no%dcti (the default behavior) prevents the assembler from NOP insertion.

-xF

Generates additional information for use by the Oracle Developer Studio performance analyzer. If the input file does not contain any stabs (debugging directives), the assembler will generate default stabs needed by the Oracle Developer 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 Capabilities section.

-KPIC

Check for address referencing with absolute relocation and issue warning.

-remove_empty_sect

Causes the following sections to be removed if they are empty: .bss, .bssf, .lbss, .data, .rodata, .ldata, .lrodata, and .picdata.

-xchip=v

When there is a choice between several possible encodings, choose the one that is appropriate for the stated chip. In particular, use the appropriate no-op byte sequence to fill code alignment padding, and warn when instructions not defined for the stated chip are used.

The assembler accepts the instruction sets for the following recognized -xchip values:

generic

generic x86 instruction set

native

this host processo

core2

Intel Core2 processor

nehalem

Intel Nehalem processor

opteron

AMD Opteron processor

penryn

Intel Penryn processor

pentium

Intel Pentium architectur

pentium_pro

Intel Pentium Pro architecture

pentium3

Intel Pentium 3 style processor

pentium4

Intel Pentium 4 style processor

sandybridge

Intel Sandy Bridge processor

westmere

Intel Westmere processor

amdfam10

AMD FAM10 processor

ivybridge

Intel Ivy Bridge processor

haswell

Intel Haswell processor

-xmodel=[small | medium| kernel]

For -m64 only, generate R_X86_64_32S relocatable type for data access under kernel. Otherwise, generate R_X86_64_32 under small. SHN_AMD64_LCOMMON and .lbcomm support added under medium. small is the default.

-Yd,path

Specify path to the version of cm4defs to use.

Environment Variables

TMPDIR

fbe normally creates temporary files in the directory /tmp. You may specify another directory by setting the environment variable TMPDIR to your chosen directory. (If TMPDIR is not a valid directory, then fbe will use /tmp).

Files

By default, fbe creates its temporary files in /tmp.

See Also

cc (1) , cpp (1) , dbx (1) , ld (1) , m4 (1) , nm (1) , strip (1) , tmpnam (3C) , a.out (4) , attributes (5)

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 the Oracle Developer Studio C compiler, cc (1) , to ensure proper library linking.

All undefined symbols are treated as global.