@c Copyright (C) 2001-2021 Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
@c man end
@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
* PowerPC-Syntax::              PowerPC Syntax
@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.

@c man begin OPTIONS
@table @gcctabopt
@item -a32
Generate ELF32 or XCOFF32.

@item -a64
Generate ELF64 or XCOFF64.

@item -K PIC
Set EF_PPC_RELOCATABLE_LIB in ELF flags.

@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 -m464
Generate code for PowerPC 464.

@item -m476
Generate code for PowerPC 476.

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

@item -m750cl, -mgekko, -mbroadway
Generate code for PowerPC 750CL/Gekko/Broadway.

@item -m821, -m850, -m860
Generate code for PowerPC 821/850/860.

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

@item -me500, -me500x2
Generate code for Motorola e500 core complex.

@item -me500mc
Generate code for Freescale e500mc core complex.

@item -me500mc64
Generate code for Freescale e500mc64 core complex.

@item -me5500
Generate code for Freescale e5500 core complex.

@item -me6500
Generate code for Freescale e6500 core complex.

@item -mspe
Generate code for Motorola SPE instructions.

@item -mspe2
Generate code for Freescale SPE2 instructions.

@item -mtitan
Generate code for AppliedMicro Titan core complex.

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

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

@item -ma2
Generate code for A2 architecture.

@item -me300
Generate code for PowerPC e300 family.

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

@item -mvle
Generate code for Freescale PowerPC VLE instructions.

@item -mvsx
Generate code for processors with Vector-Scalar (VSX) instructions.

@item -mhtm
Generate code for processors with Hardware Transactional Memory instructions.

@item -mpower4, -mpwr4
Generate code for Power4 architecture.

@item -mpower5, -mpwr5, -mpwr5x
Generate code for Power5 architecture.

@item -mpower6, -mpwr6
Generate code for Power6 architecture.

@item -mpower7, -mpwr7
Generate code for Power7 architecture.

@item -mpower8, -mpwr8
Generate code for Power8 architecture.

@item -mpower9, -mpwr9
Generate code for Power9 architecture.

@item -mpower10, -mpwr10
Generate code for Power10 architecture.

@item -mcell
@item -mcell
Generate code for Cell Broadband Engine 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 -mrelocatable option.

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

@item -memb
Set PPC_EMB bit in ELF flags.

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

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

@item -msolaris
Generate code for Solaris.

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

@item -nops=@var{count}
If an alignment directive inserts more than @var{count} nops, put a
branch at the beginning to skip execution of the nops.
@end table
@c man end


@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

@node PowerPC-Syntax
@section PowerPC Syntax
@menu
* PowerPC-Chars::                Special Characters
@end menu

@node PowerPC-Chars
@subsection Special Characters

@cindex line comment character, PowerPC
@cindex PowerPC line comment character
The presence of a @samp{#} on a line indicates the start of a comment
that extends to the end of the current line.

If a @samp{#} appears as the first character of a line then the whole
line is treated as a comment, but in this case the line could also be
a logical line number directive (@pxref{Comments}) or a preprocessor
control command (@pxref{Preprocessing}).

If the assembler has been configured for the ppc-*-solaris* target
then the @samp{!} character also acts as a line comment character.
This can be disabled via the @option{-mno-solaris} command-line
option.

@cindex line separator, PowerPC
@cindex statement separator, PowerPC
@cindex PowerPC line separator
The @samp{;} character can be used to separate statements on the same
line.
