]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / gcc / doc / gcc / gcc-command-options / machine-dependent-options / mep-options.rst
CommitLineData
c63539ff
ML
1..
2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
5
6.. program:: MeP
7
8.. index:: MeP options
9
10.. _mep-options:
11
12MeP Options
13^^^^^^^^^^^
14
15.. option:: -mabsdiff
16
17 Enables the ``abs`` instruction, which is the absolute difference
18 between two registers.
19
20.. option:: -mall-opts
21
22 Enables all the optional instructions---average, multiply, divide, bit
23 operations, leading zero, absolute difference, min/max, clip, and
24 saturation.
25
26.. option:: -maverage
27
28 Enables the ``ave`` instruction, which computes the average of two
29 registers.
30
31.. option:: -mbased={n}
32
33 Variables of size :samp:`{n}` bytes or smaller are placed in the
34 ``.based`` section by default. Based variables use the ``$tp``
35 register as a base register, and there is a 128-byte limit to the
36 ``.based`` section.
37
38.. option:: -mbitops
39
40 Enables the bit operation instructions---bit test (``btstm``), set
41 (``bsetm``), clear (``bclrm``), invert (``bnotm``), and
42 test-and-set (``tas``).
43
44.. option:: -mc={name}
45
46 Selects which section constant data is placed in. :samp:`{name}` may
47 be :samp:`tiny`, :samp:`near`, or :samp:`far`.
48
49.. option:: -mclip
50
51 Enables the ``clip`` instruction. Note that :option:`-mclip` is not
52 useful unless you also provide :option:`-mminmax`.
53
54.. option:: -mconfig={name}
55
56 Selects one of the built-in core configurations. Each MeP chip has
57 one or more modules in it; each module has a core CPU and a variety of
58 coprocessors, optional instructions, and peripherals. The
59 ``MeP-Integrator`` tool, not part of GCC, provides these
60 configurations through this option; using this option is the same as
61 using all the corresponding command-line options. The default
62 configuration is :samp:`default`.
63
64.. option:: -mcop
65
66 Enables the coprocessor instructions. By default, this is a 32-bit
67 coprocessor. Note that the coprocessor is normally enabled via the
68 :option:`-mconfig=` option.
69
70.. option:: -mcop32
71
72 Enables the 32-bit coprocessor's instructions.
73
74.. option:: -mcop64
75
76 Enables the 64-bit coprocessor's instructions.
77
78.. option:: -mivc2
79
80 Enables IVC2 scheduling. IVC2 is a 64-bit VLIW coprocessor.
81
82.. option:: -mdc
83
84 Causes constant variables to be placed in the ``.near`` section.
85
86.. option:: -mdiv
87
88 Enables the ``div`` and ``divu`` instructions.
89
90.. option:: -meb
91
92 Generate big-endian code.
93
94.. option:: -mel
95
96 Generate little-endian code.
97
98.. option:: -mio-volatile
99
100 Tells the compiler that any variable marked with the :mep-var-attr:`io`
101 attribute is to be considered volatile.
102
103.. option:: -ml
104
105 Causes variables to be assigned to the ``.far`` section by default.
106
107.. option:: -mleadz
108
109 Enables the ``leadz`` (leading zero) instruction.
110
111.. option:: -mm
112
113 Causes variables to be assigned to the ``.near`` section by default.
114
115.. option:: -mminmax
116
117 Enables the ``min`` and ``max`` instructions.
118
119.. option:: -mmult
120
121 Enables the multiplication and multiply-accumulate instructions.
122
123.. option:: -mno-opts
124
125 Disables all the optional instructions enabled by :option:`-mall-opts`.
126
127.. option:: -mrepeat
128
129 Enables the ``repeat`` and ``erepeat`` instructions, used for
130 low-overhead looping.
131
132.. option:: -ms
133
134 Causes all variables to default to the ``.tiny`` section. Note
135 that there is a 65536-byte limit to this section. Accesses to these
136 variables use the ``%gp`` base register.
137
138.. option:: -msatur
139
140 Enables the saturation instructions. Note that the compiler does not
141 currently generate these itself, but this option is included for
142 compatibility with other tools, like ``as``.
143
144.. option:: -msdram
145
146 Link the SDRAM-based runtime instead of the default ROM-based runtime.
147
148.. option:: -msim
149
150 Link the simulator run-time libraries.
151
152.. option:: -msimnovec
153
154 Link the simulator runtime libraries, excluding built-in support
155 for reset and exception vectors and tables.
156
157.. option:: -mtf
158
159 Causes all functions to default to the ``.far`` section. Without
160 this option, functions default to the ``.near`` section.
161
162.. option:: -mtiny={n}
163
164 Variables that are :samp:`{n}` bytes or smaller are allocated to the
165 ``.tiny`` section. These variables use the ``$gp`` base
166 register. The default for this option is 4, but note that there's a
3ed1b4ce 167 65536-byte limit to the ``.tiny`` section.