📄 m680x0-options.html
字号:
<html lang="en">
<head>
<title>Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.3">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
<!--
Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
<p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Funding
Free Software", the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below). A copy of the license is
included in the section entitled "GNU Free Documentation License".
<p>(a) The FSF's Front-Cover Text is:
<p>A GNU Manual
<p>(b) The FSF's Back-Cover Text is:
<p>You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.-->
</head>
<body>
<div class="node">
<p>
Node:<a name="M680x0%20Options">M680x0 Options</a>,
Next:<a rel="next" accesskey="n" href="M68hc1x-Options.html#M68hc1x%20Options">M68hc1x Options</a>,
Up:<a rel="up" accesskey="u" href="Submodel-Options.html#Submodel%20Options">Submodel Options</a>
<hr><br>
</div>
<h4 class="subsection">M680x0 Options</h4>
<p>These are the <code>-m</code> options defined for the 68000 series. The default
values for these options depends on which style of 68000 was selected when
the compiler was configured; the defaults for the most common choices are
given below.
<dl>
<dt><code>-m68000</code>
<dd><dt><code>-mc68000</code>
<dd>Generate output for a 68000. This is the default
when the compiler is configured for 68000-based systems.
<p>Use this option for microcontrollers with a 68000 or EC000 core,
including the 68008, 68302, 68306, 68307, 68322, 68328 and 68356.
<br><dt><code>-m68020</code>
<dd><dt><code>-mc68020</code>
<dd>Generate output for a 68020. This is the default
when the compiler is configured for 68020-based systems.
<br><dt><code>-m68881</code>
<dd>Generate output containing 68881 instructions for floating point.
This is the default for most 68020 systems unless <code>--nfp</code> was
specified when the compiler was configured.
<br><dt><code>-m68030</code>
<dd>Generate output for a 68030. This is the default when the compiler is
configured for 68030-based systems.
<br><dt><code>-m68040</code>
<dd>Generate output for a 68040. This is the default when the compiler is
configured for 68040-based systems.
<p>This option inhibits the use of 68881/68882 instructions that have to be
emulated by software on the 68040. Use this option if your 68040 does not
have code to emulate those instructions.
<br><dt><code>-m68060</code>
<dd>Generate output for a 68060. This is the default when the compiler is
configured for 68060-based systems.
<p>This option inhibits the use of 68020 and 68881/68882 instructions that
have to be emulated by software on the 68060. Use this option if your 68060
does not have code to emulate those instructions.
<br><dt><code>-mcpu32</code>
<dd>Generate output for a CPU32. This is the default
when the compiler is configured for CPU32-based systems.
<p>Use this option for microcontrollers with a
CPU32 or CPU32+ core, including the 68330, 68331, 68332, 68333, 68334,
68336, 68340, 68341, 68349 and 68360.
<br><dt><code>-m5200</code>
<dd>Generate output for a 520X "coldfire" family cpu. This is the default
when the compiler is configured for 520X-based systems.
<p>Use this option for microcontroller with a 5200 core, including
the MCF5202, MCF5203, MCF5204 and MCF5202.
<br><dt><code>-m68020-40</code>
<dd>Generate output for a 68040, without using any of the new instructions.
This results in code which can run relatively efficiently on either a
68020/68881 or a 68030 or a 68040. The generated code does use the
68881 instructions that are emulated on the 68040.
<br><dt><code>-m68020-60</code>
<dd>Generate output for a 68060, without using any of the new instructions.
This results in code which can run relatively efficiently on either a
68020/68881 or a 68030 or a 68040. The generated code does use the
68881 instructions that are emulated on the 68060.
<br><dt><code>-mfpa</code>
<dd>Generate output containing Sun FPA instructions for floating point.
<br><dt><code>-msoft-float</code>
<dd>Generate output containing library calls for floating point.
<strong>Warning:</strong> the requisite libraries are not available for all m68k
targets. Normally the facilities of the machine's usual C compiler are
used, but this can't be done directly in cross-compilation. You must
make your own arrangements to provide suitable library functions for
cross-compilation. The embedded targets <code>m68k-*-aout</code> and
<code>m68k-*-coff</code> do provide software floating point support.
<br><dt><code>-mshort</code>
<dd>Consider type <code>int</code> to be 16 bits wide, like <code>short int</code>.
<br><dt><code>-mnobitfield</code>
<dd>Do not use the bit-field instructions. The <code>-m68000</code>, <code>-mcpu32</code>
and <code>-m5200</code> options imply <code>-mnobitfield</code>.
<br><dt><code>-mbitfield</code>
<dd>Do use the bit-field instructions. The <code>-m68020</code> option implies
<code>-mbitfield</code>. This is the default if you use a configuration
designed for a 68020.
<br><dt><code>-mrtd</code>
<dd>Use a different function-calling convention, in which functions
that take a fixed number of arguments return with the <code>rtd</code>
instruction, which pops their arguments while returning. This
saves one instruction in the caller since there is no need to pop
the arguments there.
<p>This calling convention is incompatible with the one normally
used on Unix, so you cannot use it if you need to call libraries
compiled with the Unix compiler.
<p>Also, you must provide function prototypes for all functions that
take variable numbers of arguments (including <code>printf</code>);
otherwise incorrect code will be generated for calls to those
functions.
<p>In addition, seriously incorrect code will result if you call a
function with too many arguments. (Normally, extra arguments are
harmlessly ignored.)
<p>The <code>rtd</code> instruction is supported by the 68010, 68020, 68030,
68040, 68060 and CPU32 processors, but not by the 68000 or 5200.
<br><dt><code>-malign-int</code>
<dd><dt><code>-mno-align-int</code>
<dd>Control whether GCC aligns <code>int</code>, <code>long</code>, <code>long long</code>,
<code>float</code>, <code>double</code>, and <code>long double</code> variables on a 32-bit
boundary (<code>-malign-int</code>) or a 16-bit boundary (<code>-mno-align-int</code>).
Aligning variables on 32-bit boundaries produces code that runs somewhat
faster on processors with 32-bit busses at the expense of more memory.
<p><strong>Warning:</strong> if you use the <code>-malign-int</code> switch, GCC will
align structures containing the above types differently than
most published application binary interface specifications for the m68k.
<br><dt><code>-mpcrel</code>
<dd>Use the pc-relative addressing mode of the 68000 directly, instead of
using a global offset table. At present, this option implies <code>-fpic</code>,
allowing at most a 16-bit offset for pc-relative addressing. <code>-fPIC</code> is
not presently supported with <code>-mpcrel</code>, though this could be supported for
68020 and higher processors.
<br><dt><code>-mno-strict-align</code>
<dd><dt><code>-mstrict-align</code>
<dd>Do not (do) assume that unaligned memory references will be handled by
the system.
</dl>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -