1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<div class="subsection-level-extent" id="RL78-Options"> <div class="nav-panel"> <p> Next: <a href="rs_002f6000-and-powerpc-options" accesskey="n" rel="next">IBM RS/6000 and PowerPC Options</a>, Previous: <a href="risc-v-options" accesskey="p" rel="prev">RISC-V Options</a>, Up: <a href="submodel-options" accesskey="u" rel="up">Machine-Dependent Options</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="subsection" id="RL78-Options-1"><span>3.19.41 RL78 Options<a class="copiable-link" href="#RL78-Options-1"> ¶</a></span></h1> <dl class="table"> <dt>
<span><code class="code">-msim</code><a class="copiable-link" href="#index-msim-6"> ¶</a></span>
</dt> <dd>
<p>Links in additional target libraries to support operation within a simulator. </p> </dd> <dt>
<span><code class="code">-mmul=none</code><a class="copiable-link" href="#index-mmul"> ¶</a></span>
</dt> <dt><code class="code">-mmul=g10</code></dt> <dt><code class="code">-mmul=g13</code></dt> <dt><code class="code">-mmul=g14</code></dt> <dt><code class="code">-mmul=rl78</code></dt> <dd>
<p>Specifies the type of hardware multiplication and division support to be used. The simplest is <code class="code">none</code>, which uses software for both multiplication and division. This is the default. The <code class="code">g13</code> value is for the hardware multiply/divide peripheral found on the RL78/G13 (S2 core) targets. The <code class="code">g14</code> value selects the use of the multiplication and division instructions supported by the RL78/G14 (S3 core) parts. The value <code class="code">rl78</code> is an alias for <code class="code">g14</code> and the value <code class="code">mg10</code> is an alias for <code class="code">none</code>. </p> <p>In addition a C preprocessor macro is defined, based upon the setting of this option. Possible values are: <code class="code">__RL78_MUL_NONE__</code>, <code class="code">__RL78_MUL_G13__</code> or <code class="code">__RL78_MUL_G14__</code>. </p> </dd> <dt>
<span><code class="code">-mcpu=g10</code><a class="copiable-link" href="#index-mcpu-9"> ¶</a></span>
</dt> <dt><code class="code">-mcpu=g13</code></dt> <dt><code class="code">-mcpu=g14</code></dt> <dt><code class="code">-mcpu=rl78</code></dt> <dd>
<p>Specifies the RL78 core to target. The default is the G14 core, also known as an S3 core or just RL78. The G13 or S2 core does not have multiply or divide instructions, instead it uses a hardware peripheral for these operations. The G10 or S1 core does not have register banks, so it uses a different calling convention. </p> <p>If this option is set it also selects the type of hardware multiply support to use, unless this is overridden by an explicit <samp class="option">-mmul=none</samp> option on the command line. Thus specifying <samp class="option">-mcpu=g13</samp> enables the use of the G13 hardware multiply peripheral and specifying <samp class="option">-mcpu=g10</samp> disables the use of hardware multiplications altogether. </p> <p>Note, although the RL78/G14 core is the default target, specifying <samp class="option">-mcpu=g14</samp> or <samp class="option">-mcpu=rl78</samp> on the command line does change the behavior of the toolchain since it also enables G14 hardware multiply support. If these options are not specified on the command line then software multiplication routines will be used even though the code targets the RL78 core. This is for backwards compatibility with older toolchains which did not have hardware multiply and divide support. </p> <p>In addition a C preprocessor macro is defined, based upon the setting of this option. Possible values are: <code class="code">__RL78_G10__</code>, <code class="code">__RL78_G13__</code> or <code class="code">__RL78_G14__</code>. </p> </dd> <dt>
<span><code class="code">-mg10</code><a class="copiable-link" href="#index-mg10"> ¶</a></span>
</dt> <dt><code class="code">-mg13</code></dt> <dt><code class="code">-mg14</code></dt> <dt><code class="code">-mrl78</code></dt> <dd>
<p>These are aliases for the corresponding <samp class="option">-mcpu=</samp> option. They are provided for backwards compatibility. </p> </dd> <dt>
<span><code class="code">-mallregs</code><a class="copiable-link" href="#index-mallregs"> ¶</a></span>
</dt> <dd>
<p>Allow the compiler to use all of the available registers. By default registers <code class="code">r24..r31</code> are reserved for use in interrupt handlers. With this option enabled these registers can be used in ordinary functions as well. </p> </dd> <dt>
<span><code class="code">-m64bit-doubles</code><a class="copiable-link" href="#index-m64bit-doubles"> ¶</a></span>
</dt> <dt><code class="code">-m32bit-doubles</code></dt> <dd>
<p>Make the <code class="code">double</code> data type be 64 bits (<samp class="option">-m64bit-doubles</samp>) or 32 bits (<samp class="option">-m32bit-doubles</samp>) in size. The default is <samp class="option">-m32bit-doubles</samp>. </p> </dd> <dt>
<span><code class="code">-msave-mduc-in-interrupts</code><a class="copiable-link" href="#index-msave-mduc-in-interrupts"> ¶</a></span>
</dt> <dt><code class="code">-mno-save-mduc-in-interrupts</code></dt> <dd>
<p>Specifies that interrupt handler functions should preserve the MDUC registers. This is only necessary if normal code might use the MDUC registers, for example because it performs multiplication and division operations. The default is to ignore the MDUC registers as this makes the interrupt handlers faster. The target option -mg13 needs to be passed for this to work as this feature is only available on the G13 target (S2 core). The MDUC registers will only be saved if the interrupt handler performs a multiplication or division operation or it calls another function. </p> </dd> </dl> </div> <div class="nav-panel"> <p> Next: <a href="rs_002f6000-and-powerpc-options">IBM RS/6000 and PowerPC Options</a>, Previous: <a href="risc-v-options">RISC-V Options</a>, Up: <a href="submodel-options">Machine-Dependent Options</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div><div class="_attribution">
<p class="_attribution-p">
© Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br>
<a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/RL78-Options.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/RL78-Options.html</a>
</p>
</div>
|