-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.