@c Copyright 2001, 2002, 2003
@c Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@ifset GENERIC
@page
@node PPC-Dependent
@chapter PowerPC Dependent Features
@end ifset
@ifclear GENERIC
@node Machine Dependencies
@chapter PowerPC Dependent Features
@end ifclear

@cindex PowerPC support
@menu
* PowerPC-Opts::                Options
* PowerPC-Pseudo::              PowerPC Assembler Directives
@end menu

@node PowerPC-Opts
@section Options

@cindex options for PowerPC
@cindex PowerPC options
@cindex architectures, PowerPC
@cindex PowerPC architectures
The PowerPC chip family includes several successive levels, using the same
core instruction set, but including a few additional instructions at
each level.  There are exceptions to this however.  For details on what
instructions each variant supports, please see the chip's architecture
reference manual.

The following table lists all available PowerPC options.

@table @code
@item -mpwrx | -mpwr2
Generate code for POWER/2 (RIOS2).

@item -mpwr
Generate code for POWER (RIOS1)

@item -m601
Generate code for PowerPC 601.

@item -mppc, -mppc32, -m603, -m604
Generate code for PowerPC 603/604.

@item -m403, -m405
Generate code for PowerPC 403/405.

@item -m440
Generate code for PowerPC 440.  BookE and some 405 instructions.

@item -m7400, -m7410, -m7450, -m7455
Generate code for PowerPC 7400/7410/7450/7455.

@item -mppc64, -m620
Generate code for PowerPC 620/625/630.

@item -mppc64bridge
Generate code for PowerPC 64, including bridge insns.

@item -mbooke64
Generate code for 64-bit BookE.

@item -mbooke, mbooke32
Generate code for 32-bit BookE.

@item -maltivec
Generate code for processors with AltiVec instructions.

@item -mpower4
Generate code for Power4 architecture.

@item -mpower5
Generate code for Power5 architecture.

@item -mcom
Generate code Power/PowerPC common instructions.

@item -many
Generate code for any architecture (PWR/PWRX/PPC).

@item -mregnames
Allow symbolic names for registers.

@item -mno-regnames
Do not allow symbolic names for registers.

@item -mrelocatable
Support for GCC's -mrelocatble option.

@item -mrelocatable-lib
Support for GCC's -mrelocatble-lib option.

@item -memb
Set PPC_EMB bit in ELF flags.

@item -mlittle, -mlittle-endian
Generate code for a little endian machine.

@item -mbig, -mbig-endian
Generate code for a big endian machine.

@item -msolaris
Generate code for Solaris.

@item -mno-solaris
Do not generate code for Solaris.
@end table


@node PowerPC-Pseudo
@section PowerPC Assembler Directives

@cindex directives for PowerPC
@cindex PowerPC directives
A number of assembler directives are available for PowerPC.  The
following table is far from complete.

@table @code
@item .machine "string"
This directive allows you to change the machine for which code is
generated.  @code{"string"} may be any of the -m cpu selection options
(without the -m) enclosed in double quotes, @code{"push"}, or
@code{"pop"}.  @code{.machine "push"} saves the currently selected
cpu, which may be restored with @code{.machine "pop"}.
@end table
