]>
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:: M32R/D | |
7 | ||
8 | .. index:: M32R/D options | |
9 | ||
10 | .. _m32r-d-options: | |
11 | ||
12 | M32R/D Options | |
13 | ^^^^^^^^^^^^^^ | |
14 | ||
15 | These :option:`-m` options are defined for Renesas M32R/D architectures: | |
16 | ||
17 | .. option:: -m32r2 | |
18 | ||
19 | Generate code for the M32R/2. | |
20 | ||
21 | .. option:: -m32rx | |
22 | ||
23 | Generate code for the M32R/X. | |
24 | ||
25 | .. option:: -m32r | |
26 | ||
27 | Generate code for the M32R. This is the default. | |
28 | ||
29 | .. option:: -mmodel=small | |
30 | ||
31 | Assume all objects live in the lower 16MB of memory (so that their addresses | |
32 | can be loaded with the ``ld24`` instruction), and assume all subroutines | |
33 | are reachable with the ``bl`` instruction. | |
34 | This is the default. | |
35 | ||
36 | The addressability of a particular object can be set with the | |
37 | ``model`` attribute. | |
38 | ||
39 | .. option:: -mmodel=medium | |
40 | ||
41 | Assume objects may be anywhere in the 32-bit address space (the compiler | |
42 | generates ``seth/add3`` instructions to load their addresses), and | |
43 | assume all subroutines are reachable with the ``bl`` instruction. | |
44 | ||
45 | .. option:: -mmodel=large | |
46 | ||
47 | Assume objects may be anywhere in the 32-bit address space (the compiler | |
48 | generates ``seth/add3`` instructions to load their addresses), and | |
49 | assume subroutines may not be reachable with the ``bl`` instruction | |
50 | (the compiler generates the much slower ``seth/add3/jl`` | |
51 | instruction sequence). | |
52 | ||
53 | .. option:: -msdata=none | |
54 | ||
55 | Disable use of the small data area. Variables are put into | |
56 | one of ``.data``, ``.bss``, or ``.rodata`` (unless the | |
57 | ``section`` attribute has been specified). | |
58 | This is the default. | |
59 | ||
60 | The small data area consists of sections ``.sdata`` and ``.sbss``. | |
61 | Objects may be explicitly put in the small data area with the | |
62 | ``section`` attribute using one of these sections. | |
63 | ||
64 | .. option:: -msdata=sdata | |
65 | ||
66 | Put small global and static data in the small data area, but do not | |
67 | generate special code to reference them. | |
68 | ||
69 | .. option:: -msdata=use | |
70 | ||
71 | Put small global and static data in the small data area, and generate | |
72 | special instructions to reference them. | |
73 | ||
74 | .. index:: smaller data references | |
75 | ||
76 | .. option:: -G {num} | |
77 | ||
78 | Put global and static objects less than or equal to :samp:`{num}` bytes | |
79 | into the small data or BSS sections instead of the normal data or BSS | |
80 | sections. The default value of :samp:`{num}` is 8. | |
81 | The :option:`-msdata` option must be set to one of :samp:`sdata` or :samp:`use` | |
82 | for this option to have any effect. | |
83 | ||
84 | All modules should be compiled with the same :option:`-G num` value. | |
85 | Compiling with different values of :samp:`{num}` may or may not work; if it | |
86 | doesn't the linker gives an error message---incorrect code is not | |
87 | generated. | |
88 | ||
89 | .. option:: -mdebug | |
90 | ||
91 | Makes the M32R-specific code in the compiler display some statistics | |
92 | that might help in debugging programs. | |
93 | ||
94 | .. option:: -malign-loops | |
95 | ||
96 | Align all loops to a 32-byte boundary. | |
97 | ||
98 | .. option:: -mno-align-loops | |
99 | ||
100 | Do not enforce a 32-byte alignment for loops. This is the default. | |
101 | ||
102 | .. index:: missue-rate=number | |
103 | ||
104 | .. option:: -missue-rate={number} | |
105 | ||
106 | Issue :samp:`{number}` instructions per cycle. :samp:`{number}` can only be 1 | |
107 | or 2. | |
108 | ||
109 | .. index:: mbranch-cost=number | |
110 | ||
111 | .. option:: -mbranch-cost={number} | |
112 | ||
113 | :samp:`{number}` can only be 1 or 2. If it is 1 then branches are | |
114 | preferred over conditional code, if it is 2, then the opposite applies. | |
115 | ||
116 | .. index:: mflush-trap=number | |
117 | ||
118 | .. option:: -mflush-trap={number} | |
119 | ||
120 | Specifies the trap number to use to flush the cache. The default is | |
121 | 12. Valid numbers are between 0 and 15 inclusive. | |
122 | ||
123 | .. option:: -mno-flush-trap | |
124 | ||
125 | Specifies that the cache cannot be flushed by using a trap. | |
126 | ||
127 | .. index:: mflush-func=name | |
128 | ||
129 | .. option:: -mflush-func={name} | |
130 | ||
131 | Specifies the name of the operating system function to call to flush | |
132 | the cache. The default is :samp:`_flush_cache`, but a function call | |
133 | is only used if a trap is not available. | |
134 | ||
135 | .. option:: -mno-flush-func | |
136 | ||
3ed1b4ce | 137 | Indicates that there is no OS function for flushing the cache. |