]>
Commit | Line | Data |
---|---|---|
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 | ||
12 | MeP 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 | |
167 | 65536-byte limit to the ``.tiny`` section. |