These `-m' options are defined for the IBM RS/6000 and PowerPC:
-mpower
-mno-power
-mpower2
-mno-power2
-mpowerpc
-mno-powerpc
-mpowerpc-gpopt
-mno-powerpc-gpopt
-mpowerpc-gfxopt
-mno-powerpc-gfxopt
Neither architecture is a subset of the other. However there is a large common subset of instructions supported by both. An MQ register is included in processors supporting the POWER architecture.
You use these options to specify which instructions are available on the processor you are using. The default value of these options is determined when configuring GNU CC. Specifying the `-mcpu=cpu_type' overrides the specification of these options. We recommend you use that option rather than these.
The `-mpower' option allows GNU CC to generate instructions that are found only in the POWER architecture and to use the MQ register. Specifying `-mpower2' implies `-power' and also allows GNU CC to generate instructions that are present in the POWER2 architecture but not the original POWER architecture.
The `-mpowerpc' option allows GNU CC to generate instructions that are found only in the 32-bit subset of the PowerPC architecture. Specifying `-mpowerpc-gpopt' implies `-mpowerpc' and also allows GNU CC to use the optional PowerPC architecture instructions in the General Purpose group, including floating-point square root. Specifying `-mpowerpc-gfxopt' implies `-mpowerpc' and also allows GNU CC to use the optional PowerPC architecture instructions in the Graphics group, including floating-point select.
If you specify both `-mno-power' and `-mno-powerpc', GNU CC will use only the instructions in the common subset of both architectures plus some special AIX common-mode calls, and will not use the MQ register. Specifying both `-mpower' and `-mpowerpc' permits GNU CC to use any instruction from either architecture and to allow use of the MQ register; specify this for the Motorola MPC601.
-mnew-mnemonics
-mold-mnemonics
PowerPC assemblers support both the old and new mnemonics, as will later POWER assemblers. Current POWER assemblers only support the old mnemonics. Specify `-mnew-mnemonics' if you have an assembler that supports them, otherwise specify `-mold-mnemonics'.
The default value of these options depends on how GNU CC was configured. Specifying `-mcpu=cpu_type' sometimes overrides the value of these option. Unless you are building a cross-compiler, you should normally not specify either `-mnew-mnemonics' or `-mold-mnemonics', but should instead accept the default.
-mcpu=cpu_type
Specifying `-mcpu=rios1', `-mcpu=rios2', `-mcpu=rsc', or `-mcpu=power' enables the `-mpower' option and disables the `-mpowerpc' option; `-mcpu=601' enables both the `-mpower' and `-mpowerpc' options; `-mcpu=603', `-mcpu=604', `-mcpu=403', and `-mcpu=powerpc' enable the `-mpowerpc' option and disable the `-mpower' option; `-mcpu=common' disables both the `-mpower' and `-mpowerpc' options.
To generate code that will operate on all members of the RS/6000 and PowerPC families, specify `-mcpu=common'. In that case, GNU CC will use only the instructions in the common subset of both architectures plus some special AIX common-mode calls, and will not use the MQ register. GNU CC assumes a generic processor model for scheduling purposes.
Specifying `-mcpu=rios1', `-mcpu=rios2', `-mcpu=rsc', or `-mcpu=power' also disables the `new-mnemonics' option. Specifying `-mcpu=601', `-mcpu=603', `-mcpu=604', `403', or `-mcpu=powerpc' also enables the `new-mnemonics' option.
-mfull-toc
-mno-fp-in-toc
-mno-sum-in-toc
-mminimal-toc
If you receive a linker error message that saying you have overflowed the available TOC space, you can reduce the amount of TOC space used with the `-mno-fp-in-toc' and `-mno-sum-in-toc' options. `-mno-fp-in-toc' prevents GNU CC from putting floating-point constants in the TOC and `-mno-sum-in-toc' forces GNU CC to generate code to calculate the sum of an address and a constant at run-time instead of putting that sum into the TOC. You may specify one or both of these options. Each causes GNU CC to produce very slightly slower and larger code at the expense of conserving TOC space.
If you still run out of space in the TOC even when you specify both of these options, specify `-mminimal-toc' instead. This option causes GNU CC to make only one TOC entry for every file. When you specify this option, GNU CC will produce code that is slower and larger but which uses extremely little TOC space. You may wish to use this option only on files that contain less frequently executed code.
-msoft-float
-mhard-float
-mmultiple
-mno-multiple
-mstring
-mno-string
-mno-bit-align
-mbit-align
For example, by default a structure containing nothing but 8 unsigned
bitfields of length 1 would be aligned to a 4 byte boundary and have a size of 4 bytes. By using `-mno-bit-align', the structure would be aligned to a 1 byte boundary and be one byte in size.
-mno-strict-align
-mstrict-align
-mrelocatable
-mno-relocatable
-mno-toc
-mtoc
-mno-traceback
-mtraceback
-mlittle
-mlittle-endian
-mbig
-mbig-endian