Next: , Previous: MCore Options, Up: Submodel Options


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