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.
8 .. index:: M32R/D options
15 These :option:`-m` options are defined for Renesas M32R/D architectures:
19 Generate code for the M32R/2.
23 Generate code for the M32R/X.
27 Generate code for the M32R. This is the default.
29 .. option:: -mmodel=small
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.
36 The addressability of a particular object can be set with the
39 .. option:: -mmodel=medium
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.
45 .. option:: -mmodel=large
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).
53 .. option:: -msdata=none
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).
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.
64 .. option:: -msdata=sdata
66 Put small global and static data in the small data area, but do not
67 generate special code to reference them.
69 .. option:: -msdata=use
71 Put small global and static data in the small data area, and generate
72 special instructions to reference them.
74 .. index:: smaller data references
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.
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
91 Makes the M32R-specific code in the compiler display some statistics
92 that might help in debugging programs.
94 .. option:: -malign-loops
96 Align all loops to a 32-byte boundary.
98 .. option:: -mno-align-loops
100 Do not enforce a 32-byte alignment for loops. This is the default.
102 .. index:: missue-rate=number
104 .. option:: -missue-rate={number}
106 Issue :samp:`{number}` instructions per cycle. :samp:`{number}` can only be 1
109 .. index:: mbranch-cost=number
111 .. option:: -mbranch-cost={number}
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.
116 .. index:: mflush-trap=number
118 .. option:: -mflush-trap={number}
120 Specifies the trap number to use to flush the cache. The default is
121 12. Valid numbers are between 0 and 15 inclusive.
123 .. option:: -mno-flush-trap
125 Specifies that the cache cannot be flushed by using a trap.
127 .. index:: mflush-func=name
129 .. option:: -mflush-func={name}
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.
135 .. option:: -mno-flush-func
137 Indicates that there is no OS function for flushing the cache.