c-ppc.texi revision 1.3 1 1.3 christos @c Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011
2 1.1 skrll @c Free Software Foundation, Inc.
3 1.1 skrll @c This is part of the GAS manual.
4 1.1 skrll @c For copying conditions, see the file as.texinfo.
5 1.1 skrll @ifset GENERIC
6 1.1 skrll @page
7 1.1 skrll @node PPC-Dependent
8 1.1 skrll @chapter PowerPC Dependent Features
9 1.1 skrll @end ifset
10 1.1 skrll @ifclear GENERIC
11 1.1 skrll @node Machine Dependencies
12 1.1 skrll @chapter PowerPC Dependent Features
13 1.1 skrll @end ifclear
14 1.1 skrll
15 1.1 skrll @cindex PowerPC support
16 1.1 skrll @menu
17 1.1 skrll * PowerPC-Opts:: Options
18 1.1 skrll * PowerPC-Pseudo:: PowerPC Assembler Directives
19 1.1 skrll @end menu
20 1.1 skrll
21 1.1 skrll @node PowerPC-Opts
22 1.1 skrll @section Options
23 1.1 skrll
24 1.1 skrll @cindex options for PowerPC
25 1.1 skrll @cindex PowerPC options
26 1.1 skrll @cindex architectures, PowerPC
27 1.1 skrll @cindex PowerPC architectures
28 1.1 skrll The PowerPC chip family includes several successive levels, using the same
29 1.1 skrll core instruction set, but including a few additional instructions at
30 1.1 skrll each level. There are exceptions to this however. For details on what
31 1.1 skrll instructions each variant supports, please see the chip's architecture
32 1.1 skrll reference manual.
33 1.1 skrll
34 1.1 skrll The following table lists all available PowerPC options.
35 1.1 skrll
36 1.1 skrll @table @code
37 1.3 christos @item -a32
38 1.3 christos Generate ELF32 or XCOFF32.
39 1.3 christos
40 1.3 christos @item -a64
41 1.3 christos Generate ELF64 or XCOFF64.
42 1.3 christos
43 1.3 christos @item -K PIC
44 1.3 christos Set EF_PPC_RELOCATABLE_LIB in ELF flags.
45 1.3 christos
46 1.1 skrll @item -mpwrx | -mpwr2
47 1.1 skrll Generate code for POWER/2 (RIOS2).
48 1.1 skrll
49 1.1 skrll @item -mpwr
50 1.1 skrll Generate code for POWER (RIOS1)
51 1.1 skrll
52 1.1 skrll @item -m601
53 1.1 skrll Generate code for PowerPC 601.
54 1.1 skrll
55 1.1 skrll @item -mppc, -mppc32, -m603, -m604
56 1.1 skrll Generate code for PowerPC 603/604.
57 1.1 skrll
58 1.1 skrll @item -m403, -m405
59 1.1 skrll Generate code for PowerPC 403/405.
60 1.1 skrll
61 1.1 skrll @item -m440
62 1.1 skrll Generate code for PowerPC 440. BookE and some 405 instructions.
63 1.1 skrll
64 1.3 christos @item -m464
65 1.3 christos Generate code for PowerPC 464.
66 1.3 christos
67 1.3 christos @item -m476
68 1.3 christos Generate code for PowerPC 476.
69 1.3 christos
70 1.1 skrll @item -m7400, -m7410, -m7450, -m7455
71 1.1 skrll Generate code for PowerPC 7400/7410/7450/7455.
72 1.1 skrll
73 1.1 skrll @item -m750cl
74 1.1 skrll Generate code for PowerPC 750CL.
75 1.1 skrll
76 1.1 skrll @item -mppc64, -m620
77 1.1 skrll Generate code for PowerPC 620/625/630.
78 1.1 skrll
79 1.1 skrll @item -me500, -me500x2
80 1.1 skrll Generate code for Motorola e500 core complex.
81 1.1 skrll
82 1.3 christos @item -me500mc
83 1.3 christos Generate code for Freescale e500mc core complex.
84 1.3 christos
85 1.3 christos @item -me500mc64
86 1.3 christos Generate code for Freescale e500mc64 core complex.
87 1.3 christos
88 1.1 skrll @item -mspe
89 1.1 skrll Generate code for Motorola SPE instructions.
90 1.1 skrll
91 1.3 christos @item -mtitan
92 1.3 christos Generate code for AppliedMicro Titan core complex.
93 1.3 christos
94 1.1 skrll @item -mppc64bridge
95 1.1 skrll Generate code for PowerPC 64, including bridge insns.
96 1.1 skrll
97 1.2 skrll @item -mbooke
98 1.1 skrll Generate code for 32-bit BookE.
99 1.1 skrll
100 1.3 christos @item -ma2
101 1.3 christos Generate code for A2 architecture.
102 1.3 christos
103 1.1 skrll @item -me300
104 1.1 skrll Generate code for PowerPC e300 family.
105 1.1 skrll
106 1.1 skrll @item -maltivec
107 1.1 skrll Generate code for processors with AltiVec instructions.
108 1.1 skrll
109 1.1 skrll @item -mvsx
110 1.1 skrll Generate code for processors with Vector-Scalar (VSX) instructions.
111 1.1 skrll
112 1.3 christos @item -mpower4, -mpwr4
113 1.1 skrll Generate code for Power4 architecture.
114 1.1 skrll
115 1.3 christos @item -mpower5, -mpwr5, -mpwr5x
116 1.1 skrll Generate code for Power5 architecture.
117 1.1 skrll
118 1.3 christos @item -mpower6, -mpwr6
119 1.1 skrll Generate code for Power6 architecture.
120 1.1 skrll
121 1.3 christos @item -mpower7, -mpwr7
122 1.1 skrll Generate code for Power7 architecture.
123 1.1 skrll
124 1.1 skrll @item -mcell
125 1.1 skrll Generate code for Cell Broadband Engine architecture.
126 1.1 skrll
127 1.1 skrll @item -mcom
128 1.1 skrll Generate code Power/PowerPC common instructions.
129 1.1 skrll
130 1.1 skrll @item -many
131 1.1 skrll Generate code for any architecture (PWR/PWRX/PPC).
132 1.1 skrll
133 1.1 skrll @item -mregnames
134 1.1 skrll Allow symbolic names for registers.
135 1.1 skrll
136 1.1 skrll @item -mno-regnames
137 1.1 skrll Do not allow symbolic names for registers.
138 1.1 skrll
139 1.1 skrll @item -mrelocatable
140 1.1 skrll Support for GCC's -mrelocatable option.
141 1.1 skrll
142 1.1 skrll @item -mrelocatable-lib
143 1.1 skrll Support for GCC's -mrelocatable-lib option.
144 1.1 skrll
145 1.1 skrll @item -memb
146 1.1 skrll Set PPC_EMB bit in ELF flags.
147 1.1 skrll
148 1.3 christos @item -mlittle, -mlittle-endian, -le
149 1.1 skrll Generate code for a little endian machine.
150 1.1 skrll
151 1.3 christos @item -mbig, -mbig-endian, -be
152 1.1 skrll Generate code for a big endian machine.
153 1.1 skrll
154 1.1 skrll @item -msolaris
155 1.1 skrll Generate code for Solaris.
156 1.1 skrll
157 1.1 skrll @item -mno-solaris
158 1.1 skrll Do not generate code for Solaris.
159 1.3 christos
160 1.3 christos @item -nops=@var{count}
161 1.3 christos If an alignment directive inserts more than @var{count} nops, put a
162 1.3 christos branch at the beginning to skip execution of the nops.
163 1.1 skrll @end table
164 1.1 skrll
165 1.1 skrll
166 1.1 skrll @node PowerPC-Pseudo
167 1.1 skrll @section PowerPC Assembler Directives
168 1.1 skrll
169 1.1 skrll @cindex directives for PowerPC
170 1.1 skrll @cindex PowerPC directives
171 1.1 skrll A number of assembler directives are available for PowerPC. The
172 1.1 skrll following table is far from complete.
173 1.1 skrll
174 1.1 skrll @table @code
175 1.1 skrll @item .machine "string"
176 1.1 skrll This directive allows you to change the machine for which code is
177 1.1 skrll generated. @code{"string"} may be any of the -m cpu selection options
178 1.1 skrll (without the -m) enclosed in double quotes, @code{"push"}, or
179 1.1 skrll @code{"pop"}. @code{.machine "push"} saves the currently selected
180 1.1 skrll cpu, which may be restored with @code{.machine "pop"}.
181 1.1 skrll @end table
182