]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / gcc / doc / gcc / gcc-command-options / machine-dependent-options / m32r-d-options.rst
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
137 Indicates that there is no OS function for flushing the cache.