📄 rs-6000-and-powerpc-options.html
字号:
<code>-mstring</code> on little endian PowerPC systems, since thoseinstructions do not work when the processor is in little endian mode. The exceptions are PPC740 and PPC750 which permit the instructionsusage in little endian mode. <br><dt><code>-mupdate</code> <dd><dt><code>-mno-update</code> <dd>Generate code that uses (does not use) the load or store instructionsthat update the base register to the address of the calculated memorylocation. These instructions are generated by default. If you use<code>-mno-update</code>, there is a small window between the time that thestack pointer is updated and the address of the previous frame isstored, which means code that walks the stack frame across interrupts orsignals may get corrupted data. <br><dt><code>-mfused-madd</code> <dd><dt><code>-mno-fused-madd</code> <dd>Generate code that uses (does not use) the floating point multiply andaccumulate instructions. These instructions are generated by default ifhardware floating is used. <br><dt><code>-mno-bit-align</code> <dd><dt><code>-mbit-align</code> <dd>On System V.4 and embedded PowerPC systems do not (do) force structuresand unions that contain bit-fields to be aligned to the base type of thebit-field. <p>For example, by default a structure containing nothing but 8<code>unsigned</code> bit-fields of length 1 would be aligned to a 4 byteboundary and have a size of 4 bytes. By using <code>-mno-bit-align</code>,the structure would be aligned to a 1 byte boundary and be one byte insize. <br><dt><code>-mno-strict-align</code> <dd><dt><code>-mstrict-align</code> <dd>On System V.4 and embedded PowerPC systems do not (do) assume thatunaligned memory references will be handled by the system. <br><dt><code>-mrelocatable</code> <dd><dt><code>-mno-relocatable</code> <dd>On embedded PowerPC systems generate code that allows (does not allow)the program to be relocated to a different address at runtime. If youuse <code>-mrelocatable</code> on any module, all objects linked together mustbe compiled with <code>-mrelocatable</code> or <code>-mrelocatable-lib</code>. <br><dt><code>-mrelocatable-lib</code> <dd><dt><code>-mno-relocatable-lib</code> <dd>On embedded PowerPC systems generate code that allows (does not allow)the program to be relocated to a different address at runtime. Modulescompiled with <code>-mrelocatable-lib</code> can be linked with either modulescompiled without <code>-mrelocatable</code> and <code>-mrelocatable-lib</code> orwith modules compiled with the <code>-mrelocatable</code> options. <br><dt><code>-mno-toc</code> <dd><dt><code>-mtoc</code> <dd>On System V.4 and embedded PowerPC systems do not (do) assume thatregister 2 contains a pointer to a global area pointing to the addressesused in the program. <br><dt><code>-mlittle</code> <dd><dt><code>-mlittle-endian</code> <dd>On System V.4 and embedded PowerPC systems compile code for theprocessor in little endian mode. The <code>-mlittle-endian</code> option isthe same as <code>-mlittle</code>. <br><dt><code>-mbig</code> <dd><dt><code>-mbig-endian</code> <dd>On System V.4 and embedded PowerPC systems compile code for theprocessor in big endian mode. The <code>-mbig-endian</code> option isthe same as <code>-mbig</code>. <br><dt><code>-mdynamic-no-pic</code> <dd>On Darwin and Mac OS X systems, compile code so that it is notrelocatable, but that its external references are relocatable. Theresulting code is suitable for applications, but not sharedlibraries. <br><dt><code>-mprioritize-restricted-insns=</code><var>priority</var><code></code> <dd>This option controls the priority that is assigned todispatch-slot restricted instructions during the second schedulingpass. The argument <var>priority</var> takes the value <var>0/1/2</var> to assign<var>no/highest/second-highest</var> priority to dispatch slot restrictedinstructions. <br><dt><code>-msched-costly-dep=</code><var>dependence_type</var><code></code> <dd>This option controls which dependences are considered costlyby the target during instruction scheduling. The argument<var>dependence_type</var> takes one of the following values:<var>no</var>: no dependence is costly,<var>all</var>: all dependences are costly,<var>true_store_to_load</var>: a true dependence from store to load is costly,<var>store_to_load</var>: any dependence from store to load is costly,<var>number</var>: any dependence which latency >= <var>number</var> is costly. <br><dt><code>-minsert-sched-nops=</code><var>scheme</var><code></code> <dd>This option controls which nop insertion scheme will be used duringthe second scheduling pass. The argument <var>scheme</var> takes one of thefollowing values:<var>no</var>: Don't insert nops. <var>pad</var>: Pad with nops any dispatch group which has vacant issue slots,according to the scheduler's grouping. <var>regroup_exact</var>: Insert nops to force costly dependent insns intoseparate groups. Insert exactly as many nops as needed to force an insnto a new group, according to the estimated processor grouping. <var>number</var>: Insert nops to force costly dependent insns intoseparate groups. Insert <var>number</var> nops to force an insn to a new group. <br><dt><code>-mcall-sysv</code> <dd>On System V.4 and embedded PowerPC systems compile code using callingconventions that adheres to the March 1995 draft of the System VApplication Binary Interface, PowerPC processor supplement. This is thedefault unless you configured GCC using <code>powerpc-*-eabiaix</code>. <br><dt><code>-mcall-sysv-eabi</code> <dd>Specify both <code>-mcall-sysv</code> and <code>-meabi</code> options. <br><dt><code>-mcall-sysv-noeabi</code> <dd>Specify both <code>-mcall-sysv</code> and <code>-mno-eabi</code> options. <br><dt><code>-mcall-solaris</code> <dd>On System V.4 and embedded PowerPC systems compile code for the Solarisoperating system. <br><dt><code>-mcall-linux</code> <dd>On System V.4 and embedded PowerPC systems compile code for theLinux-based GNU system. <br><dt><code>-mcall-gnu</code> <dd>On System V.4 and embedded PowerPC systems compile code for theHurd-based GNU system. <br><dt><code>-mcall-netbsd</code> <dd>On System V.4 and embedded PowerPC systems compile code for theNetBSD operating system. <br><dt><code>-maix-struct-return</code> <dd>Return all structures in memory (as specified by the AIX ABI). <br><dt><code>-msvr4-struct-return</code> <dd>Return structures smaller than 8 bytes in registers (as specified by theSVR4 ABI). <br><dt><code>-mabi=altivec</code> <dd>Extend the current ABI with AltiVec ABI extensions. This does notchange the default ABI, instead it adds the AltiVec ABI extensions tothe current ABI. <br><dt><code>-mabi=no-altivec</code> <dd>Disable AltiVec ABI extensions for the current ABI. <br><dt><code>-mprototype</code> <dd><dt><code>-mno-prototype</code> <dd>On System V.4 and embedded PowerPC systems assume that all calls tovariable argument functions are properly prototyped. Otherwise, thecompiler must insert an instruction before every non prototyped call toset or clear bit 6 of the condition code register (<var>CR</var>) toindicate whether floating point values were passed in the floating pointregisters in case the function takes a variable arguments. With<code>-mprototype</code>, only calls to prototyped variable argument functionswill set or clear the bit. <br><dt><code>-msim</code> <dd>On embedded PowerPC systems, assume that the startup module is called<code>sim-crt0.o</code> and that the standard C libraries are <code>libsim.a</code> and<code>libc.a</code>. This is the default for <code>powerpc-*-eabisim</code>. configurations. <br><dt><code>-mmvme</code> <dd>On embedded PowerPC systems, assume that the startup module is called<code>crt0.o</code> and the standard C libraries are <code>libmvme.a</code> and<code>libc.a</code>. <br><dt><code>-mads</code> <dd>On embedded PowerPC systems, assume that the startup module is called<code>crt0.o</code> and the standard C libraries are <code>libads.a</code> and<code>libc.a</code>. <br><dt><code>-myellowknife</code> <dd>On embedded PowerPC systems, assume that the startup module is called<code>crt0.o</code> and the standard C libraries are <code>libyk.a</code> and<code>libc.a</code>. <br><dt><code>-mvxworks</code> <dd>On System V.4 and embedded PowerPC systems, specify that you arecompiling for a VxWorks system. <br><dt><code>-mwindiss</code> <dd>Specify that you are compiling for the WindISS simulation environment. <br><dt><code>-memb</code> <dd>On embedded PowerPC systems, set the <var>PPC_EMB</var> bit in the ELF flagsheader to indicate that <code>eabi</code> extended relocations are used. <br><dt><code>-meabi</code> <dd><dt><code>-mno-eabi</code> <dd>On System V.4 and embedded PowerPC systems do (do not) adhere to theEmbedded Applications Binary Interface (eabi) which is a set ofmodifications to the System V.4 specifications. Selecting <code>-meabi</code>means that the stack is aligned to an 8 byte boundary, a function<code>__eabi</code> is called to from <code>main</code> to set up the eabienvironment, and the <code>-msdata</code> option can use both <code>r2</code> and<code>r13</code> to point to two separate small data areas. Selecting<code>-mno-eabi</code> means that the stack is aligned to a 16 byte boundary,do not call an initialization function from <code>main</code>, and the<code>-msdata</code> option will only use <code>r13</code> to point to a singlesmall data area. The <code>-meabi</code> option is on by default if youconfigured GCC using one of the <code>powerpc*-*-eabi*</code> options. <br><dt><code>-msdata=eabi</code> <dd>On System V.4 and embedded PowerPC systems, put small initialized<code>const</code> global and static data in the <code>.sdata2</code> section, whichis pointed to by register <code>r2</code>. Put small initializednon-<code>const</code> global and static data in the <code>.sdata</code> section,which is pointed to by register <code>r13</code>. Put small uninitializedglobal and static data in the <code>.sbss</code> section, which is adjacent tothe <code>.sdata</code> section. The <code>-msdata=eabi</code> option isincompatible with the <code>-mrelocatable</code> option. The<code>-msdata=eabi</code> option also sets the <code>-memb</code> option. <br><dt><code>-msdata=sysv</code> <dd>On System V.4 and embedded PowerPC systems, put small global and staticdata in the <code>.sdata</code> section, which is pointed to by register<code>r13</code>. Put small uninitialized global and static data in the<code>.sbss</code> section, which is adjacent to the <code>.sdata</code> section. The <code>-msdata=sysv</code> option is incompatible with the<code>-mrelocatable</code> option. <br><dt><code>-msdata=default</code> <dd><dt><code>-msdata</code> <dd>On System V.4 and embedded PowerPC systems, if <code>-meabi</code> is used,compile code the same as <code>-msdata=eabi</code>, otherwise compile code thesame as <code>-msdata=sysv</code>. <br><dt><code>-msdata-data</code> <dd>On System V.4 and embedded PowerPC systems, put small global and staticdata in the <code>.sdata</code> section. Put small uninitialized global andstatic data in the <code>.sbss</code> section. Do not use register <code>r13</code>to address small data however. This is the default behavior unlessother <code>-msdata</code> options are used. <br><dt><code>-msdata=none</code> <dd><dt><code>-mno-sdata</code> <dd>On embedded PowerPC systems, put all initialized global and static datain the <code>.data</code> section, and all uninitialized data in the<code>.bss</code> section. <br><dt><code>-G </code><var>num</var><code></code> <dd>On embedded PowerPC systems, put global and static items less than orequal to <var>num</var> bytes into the small data or bss sections instead ofthe normal data or bss section. By default, <var>num</var> is 8. The<code>-G </code><var>num</var><code></code> switch is also passed to the linker. All modules should be compiled with the same <code>-G </code><var>num</var><code></code> value. <br><dt><code>-mregnames</code> <dd><dt><code>-mno-regnames</code> <dd>On System V.4 and embedded PowerPC systems do (do not) emit registernames in the assembly language output using symbolic forms. <br><dt><code>-mlongcall</code> <dd><dt><code>-mno-longcall</code> <dd>Default to making all function calls indirectly, using a register, sothat functions which reside further than 32 megabytes (33,554,432bytes) from the current location can be called. This setting can beoverridden by the <code>shortcall</code> function attribute, or by<code>#pragma longcall(0)</code>. <p>Some linkers are capable of detecting out-of-range calls and generatingglue code on the fly. On these systems, long calls are unnecessary andgenerate slower code. As of this writing, the AIX linker can do this,as can the GNU linker for PowerPC/64. It is planned to add this featureto the GNU linker for 32-bit PowerPC systems as well. <p>On Darwin/PPC systems, <code>#pragma longcall</code> will generate "jbsrcallee, L42", plus a "branch island" (glue code). The two targetaddresses represent the callee and the "branch island." TheDarwin/PPC linker will prefer the first address and generate a "blcallee" if the PPC "bl" instruction will reach the callee directly;otherwise, the linker will generate "bl L42" to call the "branchisland." The "branch island" is appended to the body of thecalling function; it computes the full 32-bit address of the calleeand jumps to it. <p>On Mach-O (Darwin) systems, this option directs the compiler emit tothe glue for every direct call, and the Darwin linker decides whetherto use or discard it. <p>In the future, we may cause GCC to ignore all longcall specificationswhen the linker is known to generate glue. <br><dt><code>-pthread</code> <dd>Adds support for multithreading with the <dfn>pthreads</dfn> library. This option sets flags for both the preprocessor and linker. </dl> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -