| @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. |