1@c Copyright (C) 2001-2022 Free Software Foundation, Inc. 2@c This is part of the GAS manual. 3@c For copying conditions, see the file as.texinfo. 4@c man end 5@ifset GENERIC 6@page 7@node PPC-Dependent 8@chapter PowerPC Dependent Features 9@end ifset 10@ifclear GENERIC 11@node Machine Dependencies 12@chapter PowerPC Dependent Features 13@end ifclear 14 15@cindex PowerPC support 16@menu 17* PowerPC-Opts:: Options 18* PowerPC-Pseudo:: PowerPC Assembler Directives 19* PowerPC-Syntax:: PowerPC Syntax 20@end menu 21 22@node PowerPC-Opts 23@section Options 24 25@cindex options for PowerPC 26@cindex PowerPC options 27@cindex architectures, PowerPC 28@cindex PowerPC architectures 29The PowerPC chip family includes several successive levels, using the same 30core instruction set, but including a few additional instructions at 31each level. There are exceptions to this however. For details on what 32instructions each variant supports, please see the chip's architecture 33reference manual. 34 35The following table lists all available PowerPC options. 36 37@c man begin OPTIONS 38@table @gcctabopt 39@item -a32 40Generate ELF32 or XCOFF32. 41 42@item -a64 43Generate ELF64 or XCOFF64. 44 45@item -K PIC 46Set EF_PPC_RELOCATABLE_LIB in ELF flags. 47 48@item -mpwrx | -mpwr2 49Generate code for POWER/2 (RIOS2). 50 51@item -mpwr 52Generate code for POWER (RIOS1) 53 54@item -m601 55Generate code for PowerPC 601. 56 57@item -mppc, -mppc32, -m603, -m604 58Generate code for PowerPC 603/604. 59 60@item -m403, -m405 61Generate code for PowerPC 403/405. 62 63@item -m440 64Generate code for PowerPC 440. BookE and some 405 instructions. 65 66@item -m464 67Generate code for PowerPC 464. 68 69@item -m476 70Generate code for PowerPC 476. 71 72@item -m7400, -m7410, -m7450, -m7455 73Generate code for PowerPC 7400/7410/7450/7455. 74 75@item -m750cl, -mgekko, -mbroadway 76Generate code for PowerPC 750CL/Gekko/Broadway. 77 78@item -m821, -m850, -m860 79Generate code for PowerPC 821/850/860. 80 81@item -mppc64, -m620 82Generate code for PowerPC 620/625/630. 83 84@item -me500, -me500x2 85Generate code for Motorola e500 core complex. 86 87@item -me500mc 88Generate code for Freescale e500mc core complex. 89 90@item -me500mc64 91Generate code for Freescale e500mc64 core complex. 92 93@item -me5500 94Generate code for Freescale e5500 core complex. 95 96@item -me6500 97Generate code for Freescale e6500 core complex. 98 99@item -mspe 100Generate code for Motorola SPE instructions. 101 102@item -mspe2 103Generate code for Freescale SPE2 instructions. 104 105@item -mtitan 106Generate code for AppliedMicro Titan core complex. 107 108@item -mppc64bridge 109Generate code for PowerPC 64, including bridge insns. 110 111@item -mbooke 112Generate code for 32-bit BookE. 113 114@item -ma2 115Generate code for A2 architecture. 116 117@item -me300 118Generate code for PowerPC e300 family. 119 120@item -maltivec 121Generate code for processors with AltiVec instructions. 122 123@item -mvle 124Generate code for Freescale PowerPC VLE instructions. 125 126@item -mvsx 127Generate code for processors with Vector-Scalar (VSX) instructions. 128 129@item -mhtm 130Generate code for processors with Hardware Transactional Memory instructions. 131 132@item -mpower4, -mpwr4 133Generate code for Power4 architecture. 134 135@item -mpower5, -mpwr5, -mpwr5x 136Generate code for Power5 architecture. 137 138@item -mpower6, -mpwr6 139Generate code for Power6 architecture. 140 141@item -mpower7, -mpwr7 142Generate code for Power7 architecture. 143 144@item -mpower8, -mpwr8 145Generate code for Power8 architecture. 146 147@item -mpower9, -mpwr9 148Generate code for Power9 architecture. 149 150@item -mpower10, -mpwr10 151Generate code for Power10 architecture. 152 153@item -mcell 154@item -mcell 155Generate code for Cell Broadband Engine architecture. 156 157@item -mcom 158Generate code Power/PowerPC common instructions. 159 160@item -many 161Generate code for any architecture (PWR/PWRX/PPC). 162 163@item -mregnames 164Allow symbolic names for registers. 165 166@item -mno-regnames 167Do not allow symbolic names for registers. 168 169@item -mrelocatable 170Support for GCC's -mrelocatable option. 171 172@item -mrelocatable-lib 173Support for GCC's -mrelocatable-lib option. 174 175@item -memb 176Set PPC_EMB bit in ELF flags. 177 178@item -mlittle, -mlittle-endian, -le 179Generate code for a little endian machine. 180 181@item -mbig, -mbig-endian, -be 182Generate code for a big endian machine. 183 184@item -msolaris 185Generate code for Solaris. 186 187@item -mno-solaris 188Do not generate code for Solaris. 189 190@item -nops=@var{count} 191If an alignment directive inserts more than @var{count} nops, put a 192branch at the beginning to skip execution of the nops. 193@end table 194@c man end 195 196 197@node PowerPC-Pseudo 198@section PowerPC Assembler Directives 199 200@cindex directives for PowerPC 201@cindex PowerPC directives 202A number of assembler directives are available for PowerPC. The 203following table is far from complete. 204 205@table @code 206@item .machine "string" 207This directive allows you to change the machine for which code is 208generated. @code{"string"} may be any of the -m cpu selection options 209(without the -m) enclosed in double quotes, @code{"push"}, or 210@code{"pop"}. @code{.machine "push"} saves the currently selected 211cpu, which may be restored with @code{.machine "pop"}. 212@end table 213 214@node PowerPC-Syntax 215@section PowerPC Syntax 216@menu 217* PowerPC-Chars:: Special Characters 218@end menu 219 220@node PowerPC-Chars 221@subsection Special Characters 222 223@cindex line comment character, PowerPC 224@cindex PowerPC line comment character 225The presence of a @samp{#} on a line indicates the start of a comment 226that extends to the end of the current line. 227 228If a @samp{#} appears as the first character of a line then the whole 229line is treated as a comment, but in this case the line could also be 230a logical line number directive (@pxref{Comments}) or a preprocessor 231control command (@pxref{Preprocessing}). 232 233If the assembler has been configured for the ppc-*-solaris* target 234then the @samp{!} character also acts as a line comment character. 235This can be disabled via the @option{-mno-solaris} command-line 236option. 237 238@cindex line separator, PowerPC 239@cindex statement separator, PowerPC 240@cindex PowerPC line separator 241The @samp{;} character can be used to separate statements on the same 242line. 243