компилятор C и C ++ проекта GNU (GNU project C and C++ compiler)
Параметры подробно (Options detail)
MeP
-mabsdiff
Enables the "abs" instruction, which is the absolute
difference between two registers.
-mall-opts
Enables all the optional instructions---average, multiply,
divide, bit operations, leading zero, absolute difference,
min/max, clip, and saturation.
-maverage
Enables the "ave" instruction, which computes the average of
two registers.
-mbased=
n
Variables of size n bytes or smaller are placed in the
".based" section by default. Based variables use the $tp
register as a base register, and there is a 128-byte limit to
the ".based" section.
-mbitops
Enables the bit operation instructions---bit test ("btstm"),
set ("bsetm"), clear ("bclrm"), invert ("bnotm"), and test-
and-set ("tas").
-mc=
name
Selects which section constant data is placed in. name may
be tiny
, near
, or far
.
-mclip
Enables the "clip" instruction. Note that -mclip
is not
useful unless you also provide -mminmax
.
-mconfig=
name
Selects one of the built-in core configurations. Each MeP
chip has one or more modules in it; each module has a core
CPU and a variety of coprocessors, optional instructions, and
peripherals. The "MeP-Integrator" tool, not part of GCC,
provides these configurations through this option; using this
option is the same as using all the corresponding command-
line options. The default configuration is default
.
-mcop
Enables the coprocessor instructions. By default, this is a
32-bit coprocessor. Note that the coprocessor is normally
enabled via the -mconfig=
option.
-mcop32
Enables the 32-bit coprocessor's instructions.
-mcop64
Enables the 64-bit coprocessor's instructions.
-mivc2
Enables IVC2 scheduling. IVC2 is a 64-bit VLIW coprocessor.
-mdc
Causes constant variables to be placed in the ".near"
section.
-mdiv
Enables the "div" and "divu" instructions.
-meb
Generate big-endian code.
-mel
Generate little-endian code.
-mio-volatile
Tells the compiler that any variable marked with the "io"
attribute is to be considered volatile.
-ml
Causes variables to be assigned to the ".far" section by
default.
-mleadz
Enables the "leadz" (leading zero) instruction.
-mm
Causes variables to be assigned to the ".near" section by
default.
-mminmax
Enables the "min" and "max" instructions.
-mmult
Enables the multiplication and multiply-accumulate
instructions.
-mno-opts
Disables all the optional instructions enabled by -mall-opts
.
-mrepeat
Enables the "repeat" and "erepeat" instructions, used for
low-overhead looping.
-ms
Causes all variables to default to the ".tiny" section. Note
that there is a 65536-byte limit to this section. Accesses
to these variables use the %gp base register.
-msatur
Enables the saturation instructions. Note that the compiler
does not currently generate these itself, but this option is
included for compatibility with other tools, like "as".
-msdram
Link the SDRAM-based runtime instead of the default ROM-based
runtime.
-msim
Link the simulator run-time libraries.
-msimnovec
Link the simulator runtime libraries, excluding built-in
support for reset and exception vectors and tables.
-mtf
Causes all functions to default to the ".far" section.
Without this option, functions default to the ".near"
section.
-mtiny=
n
Variables that are n bytes or smaller are allocated to the
".tiny" section. These variables use the $gp base register.
The default for this option is 4, but note that there's a
65536-byte limit to the ".tiny" section.