MeP Options#
- -mabsdiff#
Enables the
absinstruction, 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
aveinstruction, which computes the average of two registers.
- -mbased=n#
Variables of size
nbytes or smaller are placed in the.basedsection by default. Based variables use the$tpregister as a base register, and there is a 128-byte limit to the.basedsection.
- -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.
namemay betiny,near, orfar.
- -mclip#
Enables the
clipinstruction. Note that-mclipis 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-Integratortool, 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 isdefault.
- -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
.nearsection.
- -mdiv#
Enables the
divanddivuinstructions.
- -meb#
Generate big-endian code.
- -mel#
Generate little-endian code.
- -mio-volatile#
Tells the compiler that any variable marked with the
ioattribute is to be considered volatile.
- -ml#
Causes variables to be assigned to the
.farsection by default.
- -mleadz#
Enables the
leadz(leading zero) instruction.
- -mm#
Causes variables to be assigned to the
.nearsection by default.
- -mminmax#
Enables the
minandmaxinstructions.
- -mmult#
Enables the multiplication and multiply-accumulate instructions.
- -mno-opts#
Disables all the optional instructions enabled by
-mall-opts.
- -mrepeat#
Enables the
repeatanderepeatinstructions, used for low-overhead looping.
- -ms#
Causes all variables to default to the
.tinysection. Note that there is a 65536-byte limit to this section. Accesses to these variables use the%gpbase 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
.farsection. Without this option, functions default to the.nearsection.
- -mtiny=n#
Variables that are
nbytes or smaller are allocated to the.tinysection. These variables use the$gpbase register. The default for this option is 4, but note that there’s a 65536-byte limit to the.tinysection.