These ‘-m
’ options are defined for the DEC Alpha implementations:
-mno-soft-float
-msoft-float
-msoft-float
is specified, functions in libgcc.a
are used to perform floating-point operations. Unless they are replaced by routines that emulate the floating-point operations, or compiled in such a way as to call such emulations routines, these routines issue floating-point operations. If you are compiling for an Alpha without floating-point operations, you must ensure that the library is built so as not to call them. Note that Alpha implementations without floating-point operations are required to have floating-point registers.
-mfp-reg
-mno-fp-regs
-mno-fp-regs
implies -msoft-float
. If the floating-point register set is not used, floating-point operands are passed in integer registers as if they were integers and floating-point results are passed in $0
instead of $f0
. This is a non-standard calling sequence, so any function with a floating-point argument or return value called by code compiled with -mno-fp-regs
must also be compiled with that option. A typical use of this option is building a kernel that does not use, and hence need not save and restore, any floating-point registers.
-mieee
_IEEE_FP
is defined during compilation. The resulting code is less efficient but is able to correctly support denormalized numbers and exceptional IEEE values such as not-a-number and plus/minus infinity. Other Alpha compilers call this option -ieee_with_no_inexact
. -mieee-with-inexact
-mieee
except the generated code also maintains the IEEE inexact-flag. Turning on this option causes the generated code to implement fully-compliant IEEE math. In addition to _IEEE_FP
, _IEEE_FP_EXACT
is defined as a preprocessor macro. On some Alpha implementations the resulting code may execute significantly slower than the code generated by default. Since there is very little code that depends on the inexact-flag, you should normally not specify this option. Other Alpha compilers call this option -ieee_with_inexact
. -mfp-trap-mode=
trap-mode
n
’u
’n
’, underflow traps are enabled as well. su
’u
’, but the instructions are marked to be safe for software completion (see Alpha architecture manual for details). sui
’su
’, but inexact traps are enabled as well. -mfp-rounding-mode=
rounding-mode
n
’m
’c
’d
’d
’ corresponds to round towards plus infinity. -mtrap-precision=
trap-precision
p
’f
’i
’Other Alpha compilers provide the equivalent options called -scope_safe
and -resumption_safe
.
-mieee-conformant
-mtrap-precision=i
and either -mfp-trap-mode=su
or -mfp-trap-mode=sui
. Its only effect is to emit the line ‘.eflag 48
’ in the function prologue of the generated assembly file. -mbuild-constants
Use this option to require GCC to construct all integer constants using code, even if it takes more instructions (the maximum is six).
You typically use this option to build a shared library dynamic loader. Itself a shared library, it must relocate itself in memory before it can find the variables and constants in its own data segment.
-mbwx
-mno-bwx
-mcix
-mno-cix
-mfix
-mno-fix
-mmax
-mno-max
-mcpu=
option or that of the CPU on which GCC was built if none is specified. -mfloat-vax
-mfloat-ieee
-mexplicit-relocs
-mno-explicit-relocs
-msmall-data
-mlarge-data
-mexplicit-relocs
is in effect, static data is accessed via gp-relative relocations. When -msmall-data
is used, objects 8 bytes long or smaller are placed in a small data area (the .sdata
and .sbss
sections) and are accessed via 16-bit relocations off of the $gp
register. This limits the size of the small data area to 64KB, but allows the variables to be directly accessed via a single instruction. The default is -mlarge-data
. With this option the data area is limited to just below 2GB. Programs that require more than 2GB of data must use malloc
or mmap
to allocate the data in the heap instead of in the program's data segment.
When generating code for shared libraries, -fpic
implies -msmall-data
and -fPIC
implies -mlarge-data
.
-msmall-text
-mlarge-text
-msmall-text
is used, the compiler assumes that the code of the entire program (or shared library) fits in 4MB, and is thus reachable with a branch instruction. When -msmall-data
is used, the compiler can assume that all local symbols share the same $gp
value, and thus reduce the number of instructions required for a function call from 4 to 1. The default is -mlarge-text
.
-mcpu=
cpu_type
EV
’ style name or the corresponding chip number. GCC supports scheduling parameters for the EV4, EV5 and EV6 family of processors and chooses the default values for the instruction set from the processor you specify. If you do not specify a processor type, GCC defaults to the processor on which the compiler was built. Supported values for cpu_type are
ev4
’ev45
’21064
’ev5
’21164
’ev56
’21164a
’pca56
’21164pc
’21164PC
’ev6
’21264
’ev67
’21264a
’Native toolchains also support the value ‘native
’, which selects the best architecture option for the host processor. -mcpu=native
has no effect if GCC does not recognize the processor.
-mtune=
cpu_type
Native toolchains also support the value ‘native
’, which selects the best architecture option for the host processor. -mtune=native
has no effect if GCC does not recognize the processor.
-mmemory-latency=
time
Valid options for time are
L1
’L2
’L3
’main
’
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/DEC-Alpha-Options.html