3.18.25 MeP Options

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