M680x0-Options.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2017 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>Using the GNU Compiler Collection (GCC): M680x0 Options</title>
  20. <meta name="description" content="Using the GNU Compiler Collection (GCC): M680x0 Options">
  21. <meta name="keywords" content="Using the GNU Compiler Collection (GCC): M680x0 Options">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
  30. <link href="MCore-Options.html#MCore-Options" rel="next" title="MCore Options">
  31. <link href="M32R_002fD-Options.html#M32R_002fD-Options" rel="prev" title="M32R/D Options">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style:oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="M680x0-Options"></a>
  63. <div class="header">
  64. <p>
  65. Next: <a href="MCore-Options.html#MCore-Options" accesskey="n" rel="next">MCore Options</a>, Previous: <a href="M32R_002fD-Options.html#M32R_002fD-Options" accesskey="p" rel="prev">M32R/D Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  66. </div>
  67. <hr>
  68. <a name="M680x0-Options-1"></a>
  69. <h4 class="subsection">3.18.22 M680x0 Options</h4>
  70. <a name="index-M680x0-options"></a>
  71. <p>These are the &lsquo;<samp>-m</samp>&rsquo; options defined for M680x0 and ColdFire processors.
  72. The default settings depend on which architecture was selected when
  73. the compiler was configured; the defaults for the most common choices
  74. are given below.
  75. </p>
  76. <dl compact="compact">
  77. <dt><code>-march=<var>arch</var></code></dt>
  78. <dd><a name="index-march-6"></a>
  79. <p>Generate code for a specific M680x0 or ColdFire instruction set
  80. architecture. Permissible values of <var>arch</var> for M680x0
  81. architectures are: &lsquo;<samp>68000</samp>&rsquo;, &lsquo;<samp>68010</samp>&rsquo;, &lsquo;<samp>68020</samp>&rsquo;,
  82. &lsquo;<samp>68030</samp>&rsquo;, &lsquo;<samp>68040</samp>&rsquo;, &lsquo;<samp>68060</samp>&rsquo; and &lsquo;<samp>cpu32</samp>&rsquo;. ColdFire
  83. architectures are selected according to Freescale&rsquo;s ISA classification
  84. and the permissible values are: &lsquo;<samp>isaa</samp>&rsquo;, &lsquo;<samp>isaaplus</samp>&rsquo;,
  85. &lsquo;<samp>isab</samp>&rsquo; and &lsquo;<samp>isac</samp>&rsquo;.
  86. </p>
  87. <p>GCC defines a macro <code>__mcf<var>arch</var>__</code> whenever it is generating
  88. code for a ColdFire target. The <var>arch</var> in this macro is one of the
  89. <samp>-march</samp> arguments given above.
  90. </p>
  91. <p>When used together, <samp>-march</samp> and <samp>-mtune</samp> select code
  92. that runs on a family of similar processors but that is optimized
  93. for a particular microarchitecture.
  94. </p>
  95. </dd>
  96. <dt><code>-mcpu=<var>cpu</var></code></dt>
  97. <dd><a name="index-mcpu-6"></a>
  98. <p>Generate code for a specific M680x0 or ColdFire processor.
  99. The M680x0 <var>cpu</var>s are: &lsquo;<samp>68000</samp>&rsquo;, &lsquo;<samp>68010</samp>&rsquo;, &lsquo;<samp>68020</samp>&rsquo;,
  100. &lsquo;<samp>68030</samp>&rsquo;, &lsquo;<samp>68040</samp>&rsquo;, &lsquo;<samp>68060</samp>&rsquo;, &lsquo;<samp>68302</samp>&rsquo;, &lsquo;<samp>68332</samp>&rsquo;
  101. and &lsquo;<samp>cpu32</samp>&rsquo;. The ColdFire <var>cpu</var>s are given by the table
  102. below, which also classifies the CPUs into families:
  103. </p>
  104. <table>
  105. <tr><td width="20%"><strong>Family</strong></td><td width="80%"><strong>&lsquo;<samp>-mcpu</samp>&rsquo; arguments</strong></td></tr>
  106. <tr><td width="20%">&lsquo;<samp>51</samp>&rsquo;</td><td width="80%">&lsquo;<samp>51</samp>&rsquo; &lsquo;<samp>51ac</samp>&rsquo; &lsquo;<samp>51ag</samp>&rsquo; &lsquo;<samp>51cn</samp>&rsquo; &lsquo;<samp>51em</samp>&rsquo; &lsquo;<samp>51je</samp>&rsquo; &lsquo;<samp>51jf</samp>&rsquo; &lsquo;<samp>51jg</samp>&rsquo; &lsquo;<samp>51jm</samp>&rsquo; &lsquo;<samp>51mm</samp>&rsquo; &lsquo;<samp>51qe</samp>&rsquo; &lsquo;<samp>51qm</samp>&rsquo;</td></tr>
  107. <tr><td width="20%">&lsquo;<samp>5206</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5202</samp>&rsquo; &lsquo;<samp>5204</samp>&rsquo; &lsquo;<samp>5206</samp>&rsquo;</td></tr>
  108. <tr><td width="20%">&lsquo;<samp>5206e</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5206e</samp>&rsquo;</td></tr>
  109. <tr><td width="20%">&lsquo;<samp>5208</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5207</samp>&rsquo; &lsquo;<samp>5208</samp>&rsquo;</td></tr>
  110. <tr><td width="20%">&lsquo;<samp>5211a</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5210a</samp>&rsquo; &lsquo;<samp>5211a</samp>&rsquo;</td></tr>
  111. <tr><td width="20%">&lsquo;<samp>5213</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5211</samp>&rsquo; &lsquo;<samp>5212</samp>&rsquo; &lsquo;<samp>5213</samp>&rsquo;</td></tr>
  112. <tr><td width="20%">&lsquo;<samp>5216</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5214</samp>&rsquo; &lsquo;<samp>5216</samp>&rsquo;</td></tr>
  113. <tr><td width="20%">&lsquo;<samp>52235</samp>&rsquo;</td><td width="80%">&lsquo;<samp>52230</samp>&rsquo; &lsquo;<samp>52231</samp>&rsquo; &lsquo;<samp>52232</samp>&rsquo; &lsquo;<samp>52233</samp>&rsquo; &lsquo;<samp>52234</samp>&rsquo; &lsquo;<samp>52235</samp>&rsquo;</td></tr>
  114. <tr><td width="20%">&lsquo;<samp>5225</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5224</samp>&rsquo; &lsquo;<samp>5225</samp>&rsquo;</td></tr>
  115. <tr><td width="20%">&lsquo;<samp>52259</samp>&rsquo;</td><td width="80%">&lsquo;<samp>52252</samp>&rsquo; &lsquo;<samp>52254</samp>&rsquo; &lsquo;<samp>52255</samp>&rsquo; &lsquo;<samp>52256</samp>&rsquo; &lsquo;<samp>52258</samp>&rsquo; &lsquo;<samp>52259</samp>&rsquo;</td></tr>
  116. <tr><td width="20%">&lsquo;<samp>5235</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5232</samp>&rsquo; &lsquo;<samp>5233</samp>&rsquo; &lsquo;<samp>5234</samp>&rsquo; &lsquo;<samp>5235</samp>&rsquo; &lsquo;<samp>523x</samp>&rsquo;</td></tr>
  117. <tr><td width="20%">&lsquo;<samp>5249</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5249</samp>&rsquo;</td></tr>
  118. <tr><td width="20%">&lsquo;<samp>5250</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5250</samp>&rsquo;</td></tr>
  119. <tr><td width="20%">&lsquo;<samp>5271</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5270</samp>&rsquo; &lsquo;<samp>5271</samp>&rsquo;</td></tr>
  120. <tr><td width="20%">&lsquo;<samp>5272</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5272</samp>&rsquo;</td></tr>
  121. <tr><td width="20%">&lsquo;<samp>5275</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5274</samp>&rsquo; &lsquo;<samp>5275</samp>&rsquo;</td></tr>
  122. <tr><td width="20%">&lsquo;<samp>5282</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5280</samp>&rsquo; &lsquo;<samp>5281</samp>&rsquo; &lsquo;<samp>5282</samp>&rsquo; &lsquo;<samp>528x</samp>&rsquo;</td></tr>
  123. <tr><td width="20%">&lsquo;<samp>53017</samp>&rsquo;</td><td width="80%">&lsquo;<samp>53011</samp>&rsquo; &lsquo;<samp>53012</samp>&rsquo; &lsquo;<samp>53013</samp>&rsquo; &lsquo;<samp>53014</samp>&rsquo; &lsquo;<samp>53015</samp>&rsquo; &lsquo;<samp>53016</samp>&rsquo; &lsquo;<samp>53017</samp>&rsquo;</td></tr>
  124. <tr><td width="20%">&lsquo;<samp>5307</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5307</samp>&rsquo;</td></tr>
  125. <tr><td width="20%">&lsquo;<samp>5329</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5327</samp>&rsquo; &lsquo;<samp>5328</samp>&rsquo; &lsquo;<samp>5329</samp>&rsquo; &lsquo;<samp>532x</samp>&rsquo;</td></tr>
  126. <tr><td width="20%">&lsquo;<samp>5373</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5372</samp>&rsquo; &lsquo;<samp>5373</samp>&rsquo; &lsquo;<samp>537x</samp>&rsquo;</td></tr>
  127. <tr><td width="20%">&lsquo;<samp>5407</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5407</samp>&rsquo;</td></tr>
  128. <tr><td width="20%">&lsquo;<samp>5475</samp>&rsquo;</td><td width="80%">&lsquo;<samp>5470</samp>&rsquo; &lsquo;<samp>5471</samp>&rsquo; &lsquo;<samp>5472</samp>&rsquo; &lsquo;<samp>5473</samp>&rsquo; &lsquo;<samp>5474</samp>&rsquo; &lsquo;<samp>5475</samp>&rsquo; &lsquo;<samp>547x</samp>&rsquo; &lsquo;<samp>5480</samp>&rsquo; &lsquo;<samp>5481</samp>&rsquo; &lsquo;<samp>5482</samp>&rsquo; &lsquo;<samp>5483</samp>&rsquo; &lsquo;<samp>5484</samp>&rsquo; &lsquo;<samp>5485</samp>&rsquo;</td></tr>
  129. </table>
  130. <p><samp>-mcpu=<var>cpu</var></samp> overrides <samp>-march=<var>arch</var></samp> if
  131. <var>arch</var> is compatible with <var>cpu</var>. Other combinations of
  132. <samp>-mcpu</samp> and <samp>-march</samp> are rejected.
  133. </p>
  134. <p>GCC defines the macro <code>__mcf_cpu_<var>cpu</var></code> when ColdFire target
  135. <var>cpu</var> is selected. It also defines <code>__mcf_family_<var>family</var></code>,
  136. where the value of <var>family</var> is given by the table above.
  137. </p>
  138. </dd>
  139. <dt><code>-mtune=<var>tune</var></code></dt>
  140. <dd><a name="index-mtune-7"></a>
  141. <p>Tune the code for a particular microarchitecture within the
  142. constraints set by <samp>-march</samp> and <samp>-mcpu</samp>.
  143. The M680x0 microarchitectures are: &lsquo;<samp>68000</samp>&rsquo;, &lsquo;<samp>68010</samp>&rsquo;,
  144. &lsquo;<samp>68020</samp>&rsquo;, &lsquo;<samp>68030</samp>&rsquo;, &lsquo;<samp>68040</samp>&rsquo;, &lsquo;<samp>68060</samp>&rsquo;
  145. and &lsquo;<samp>cpu32</samp>&rsquo;. The ColdFire microarchitectures
  146. are: &lsquo;<samp>cfv1</samp>&rsquo;, &lsquo;<samp>cfv2</samp>&rsquo;, &lsquo;<samp>cfv3</samp>&rsquo;, &lsquo;<samp>cfv4</samp>&rsquo; and &lsquo;<samp>cfv4e</samp>&rsquo;.
  147. </p>
  148. <p>You can also use <samp>-mtune=68020-40</samp> for code that needs
  149. to run relatively well on 68020, 68030 and 68040 targets.
  150. <samp>-mtune=68020-60</samp> is similar but includes 68060 targets
  151. as well. These two options select the same tuning decisions as
  152. <samp>-m68020-40</samp> and <samp>-m68020-60</samp> respectively.
  153. </p>
  154. <p>GCC defines the macros <code>__mc<var>arch</var></code> and <code>__mc<var>arch</var>__</code>
  155. when tuning for 680x0 architecture <var>arch</var>. It also defines
  156. <code>mc<var>arch</var></code> unless either <samp>-ansi</samp> or a non-GNU <samp>-std</samp>
  157. option is used. If GCC is tuning for a range of architectures,
  158. as selected by <samp>-mtune=68020-40</samp> or <samp>-mtune=68020-60</samp>,
  159. it defines the macros for every architecture in the range.
  160. </p>
  161. <p>GCC also defines the macro <code>__m<var>uarch</var>__</code> when tuning for
  162. ColdFire microarchitecture <var>uarch</var>, where <var>uarch</var> is one
  163. of the arguments given above.
  164. </p>
  165. </dd>
  166. <dt><code>-m68000</code></dt>
  167. <dt><code>-mc68000</code></dt>
  168. <dd><a name="index-m68000"></a>
  169. <a name="index-mc68000"></a>
  170. <p>Generate output for a 68000. This is the default
  171. when the compiler is configured for 68000-based systems.
  172. It is equivalent to <samp>-march=68000</samp>.
  173. </p>
  174. <p>Use this option for microcontrollers with a 68000 or EC000 core,
  175. including the 68008, 68302, 68306, 68307, 68322, 68328 and 68356.
  176. </p>
  177. </dd>
  178. <dt><code>-m68010</code></dt>
  179. <dd><a name="index-m68010"></a>
  180. <p>Generate output for a 68010. This is the default
  181. when the compiler is configured for 68010-based systems.
  182. It is equivalent to <samp>-march=68010</samp>.
  183. </p>
  184. </dd>
  185. <dt><code>-m68020</code></dt>
  186. <dt><code>-mc68020</code></dt>
  187. <dd><a name="index-m68020"></a>
  188. <a name="index-mc68020"></a>
  189. <p>Generate output for a 68020. This is the default
  190. when the compiler is configured for 68020-based systems.
  191. It is equivalent to <samp>-march=68020</samp>.
  192. </p>
  193. </dd>
  194. <dt><code>-m68030</code></dt>
  195. <dd><a name="index-m68030"></a>
  196. <p>Generate output for a 68030. This is the default when the compiler is
  197. configured for 68030-based systems. It is equivalent to
  198. <samp>-march=68030</samp>.
  199. </p>
  200. </dd>
  201. <dt><code>-m68040</code></dt>
  202. <dd><a name="index-m68040"></a>
  203. <p>Generate output for a 68040. This is the default when the compiler is
  204. configured for 68040-based systems. It is equivalent to
  205. <samp>-march=68040</samp>.
  206. </p>
  207. <p>This option inhibits the use of 68881/68882 instructions that have to be
  208. emulated by software on the 68040. Use this option if your 68040 does not
  209. have code to emulate those instructions.
  210. </p>
  211. </dd>
  212. <dt><code>-m68060</code></dt>
  213. <dd><a name="index-m68060"></a>
  214. <p>Generate output for a 68060. This is the default when the compiler is
  215. configured for 68060-based systems. It is equivalent to
  216. <samp>-march=68060</samp>.
  217. </p>
  218. <p>This option inhibits the use of 68020 and 68881/68882 instructions that
  219. have to be emulated by software on the 68060. Use this option if your 68060
  220. does not have code to emulate those instructions.
  221. </p>
  222. </dd>
  223. <dt><code>-mcpu32</code></dt>
  224. <dd><a name="index-mcpu32"></a>
  225. <p>Generate output for a CPU32. This is the default
  226. when the compiler is configured for CPU32-based systems.
  227. It is equivalent to <samp>-march=cpu32</samp>.
  228. </p>
  229. <p>Use this option for microcontrollers with a
  230. CPU32 or CPU32+ core, including the 68330, 68331, 68332, 68333, 68334,
  231. 68336, 68340, 68341, 68349 and 68360.
  232. </p>
  233. </dd>
  234. <dt><code>-m5200</code></dt>
  235. <dd><a name="index-m5200"></a>
  236. <p>Generate output for a 520X ColdFire CPU. This is the default
  237. when the compiler is configured for 520X-based systems.
  238. It is equivalent to <samp>-mcpu=5206</samp>, and is now deprecated
  239. in favor of that option.
  240. </p>
  241. <p>Use this option for microcontroller with a 5200 core, including
  242. the MCF5202, MCF5203, MCF5204 and MCF5206.
  243. </p>
  244. </dd>
  245. <dt><code>-m5206e</code></dt>
  246. <dd><a name="index-m5206e"></a>
  247. <p>Generate output for a 5206e ColdFire CPU. The option is now
  248. deprecated in favor of the equivalent <samp>-mcpu=5206e</samp>.
  249. </p>
  250. </dd>
  251. <dt><code>-m528x</code></dt>
  252. <dd><a name="index-m528x"></a>
  253. <p>Generate output for a member of the ColdFire 528X family.
  254. The option is now deprecated in favor of the equivalent
  255. <samp>-mcpu=528x</samp>.
  256. </p>
  257. </dd>
  258. <dt><code>-m5307</code></dt>
  259. <dd><a name="index-m5307"></a>
  260. <p>Generate output for a ColdFire 5307 CPU. The option is now deprecated
  261. in favor of the equivalent <samp>-mcpu=5307</samp>.
  262. </p>
  263. </dd>
  264. <dt><code>-m5407</code></dt>
  265. <dd><a name="index-m5407"></a>
  266. <p>Generate output for a ColdFire 5407 CPU. The option is now deprecated
  267. in favor of the equivalent <samp>-mcpu=5407</samp>.
  268. </p>
  269. </dd>
  270. <dt><code>-mcfv4e</code></dt>
  271. <dd><a name="index-mcfv4e"></a>
  272. <p>Generate output for a ColdFire V4e family CPU (e.g. 547x/548x).
  273. This includes use of hardware floating-point instructions.
  274. The option is equivalent to <samp>-mcpu=547x</samp>, and is now
  275. deprecated in favor of that option.
  276. </p>
  277. </dd>
  278. <dt><code>-m68020-40</code></dt>
  279. <dd><a name="index-m68020_002d40"></a>
  280. <p>Generate output for a 68040, without using any of the new instructions.
  281. This results in code that can run relatively efficiently on either a
  282. 68020/68881 or a 68030 or a 68040. The generated code does use the
  283. 68881 instructions that are emulated on the 68040.
  284. </p>
  285. <p>The option is equivalent to <samp>-march=68020</samp> <samp>-mtune=68020-40</samp>.
  286. </p>
  287. </dd>
  288. <dt><code>-m68020-60</code></dt>
  289. <dd><a name="index-m68020_002d60"></a>
  290. <p>Generate output for a 68060, without using any of the new instructions.
  291. This results in code that can run relatively efficiently on either a
  292. 68020/68881 or a 68030 or a 68040. The generated code does use the
  293. 68881 instructions that are emulated on the 68060.
  294. </p>
  295. <p>The option is equivalent to <samp>-march=68020</samp> <samp>-mtune=68020-60</samp>.
  296. </p>
  297. </dd>
  298. <dt><code>-mhard-float</code></dt>
  299. <dt><code>-m68881</code></dt>
  300. <dd><a name="index-mhard_002dfloat-1"></a>
  301. <a name="index-m68881"></a>
  302. <p>Generate floating-point instructions. This is the default for 68020
  303. and above, and for ColdFire devices that have an FPU. It defines the
  304. macro <code>__HAVE_68881__</code> on M680x0 targets and <code>__mcffpu__</code>
  305. on ColdFire targets.
  306. </p>
  307. </dd>
  308. <dt><code>-msoft-float</code></dt>
  309. <dd><a name="index-msoft_002dfloat-4"></a>
  310. <p>Do not generate floating-point instructions; use library calls instead.
  311. This is the default for 68000, 68010, and 68832 targets. It is also
  312. the default for ColdFire devices that have no FPU.
  313. </p>
  314. </dd>
  315. <dt><code>-mdiv</code></dt>
  316. <dt><code>-mno-div</code></dt>
  317. <dd><a name="index-mdiv"></a>
  318. <a name="index-mno_002ddiv"></a>
  319. <p>Generate (do not generate) ColdFire hardware divide and remainder
  320. instructions. If <samp>-march</samp> is used without <samp>-mcpu</samp>,
  321. the default is &ldquo;on&rdquo; for ColdFire architectures and &ldquo;off&rdquo; for M680x0
  322. architectures. Otherwise, the default is taken from the target CPU
  323. (either the default CPU, or the one specified by <samp>-mcpu</samp>). For
  324. example, the default is &ldquo;off&rdquo; for <samp>-mcpu=5206</samp> and &ldquo;on&rdquo; for
  325. <samp>-mcpu=5206e</samp>.
  326. </p>
  327. <p>GCC defines the macro <code>__mcfhwdiv__</code> when this option is enabled.
  328. </p>
  329. </dd>
  330. <dt><code>-mshort</code></dt>
  331. <dd><a name="index-mshort"></a>
  332. <p>Consider type <code>int</code> to be 16 bits wide, like <code>short int</code>.
  333. Additionally, parameters passed on the stack are also aligned to a
  334. 16-bit boundary even on targets whose API mandates promotion to 32-bit.
  335. </p>
  336. </dd>
  337. <dt><code>-mno-short</code></dt>
  338. <dd><a name="index-mno_002dshort"></a>
  339. <p>Do not consider type <code>int</code> to be 16 bits wide. This is the default.
  340. </p>
  341. </dd>
  342. <dt><code>-mnobitfield</code></dt>
  343. <dt><code>-mno-bitfield</code></dt>
  344. <dd><a name="index-mnobitfield"></a>
  345. <a name="index-mno_002dbitfield"></a>
  346. <p>Do not use the bit-field instructions. The <samp>-m68000</samp>, <samp>-mcpu32</samp>
  347. and <samp>-m5200</samp> options imply <samp><span class="nolinebreak">-mnobitfield</span></samp><!-- /@w -->.
  348. </p>
  349. </dd>
  350. <dt><code>-mbitfield</code></dt>
  351. <dd><a name="index-mbitfield"></a>
  352. <p>Do use the bit-field instructions. The <samp>-m68020</samp> option implies
  353. <samp>-mbitfield</samp>. This is the default if you use a configuration
  354. designed for a 68020.
  355. </p>
  356. </dd>
  357. <dt><code>-mrtd</code></dt>
  358. <dd><a name="index-mrtd"></a>
  359. <p>Use a different function-calling convention, in which functions
  360. that take a fixed number of arguments return with the <code>rtd</code>
  361. instruction, which pops their arguments while returning. This
  362. saves one instruction in the caller since there is no need to pop
  363. the arguments there.
  364. </p>
  365. <p>This calling convention is incompatible with the one normally
  366. used on Unix, so you cannot use it if you need to call libraries
  367. compiled with the Unix compiler.
  368. </p>
  369. <p>Also, you must provide function prototypes for all functions that
  370. take variable numbers of arguments (including <code>printf</code>);
  371. otherwise incorrect code is generated for calls to those
  372. functions.
  373. </p>
  374. <p>In addition, seriously incorrect code results if you call a
  375. function with too many arguments. (Normally, extra arguments are
  376. harmlessly ignored.)
  377. </p>
  378. <p>The <code>rtd</code> instruction is supported by the 68010, 68020, 68030,
  379. 68040, 68060 and CPU32 processors, but not by the 68000 or 5200.
  380. </p>
  381. </dd>
  382. <dt><code>-mno-rtd</code></dt>
  383. <dd><a name="index-mno_002drtd"></a>
  384. <p>Do not use the calling conventions selected by <samp>-mrtd</samp>.
  385. This is the default.
  386. </p>
  387. </dd>
  388. <dt><code>-malign-int</code></dt>
  389. <dt><code>-mno-align-int</code></dt>
  390. <dd><a name="index-malign_002dint"></a>
  391. <a name="index-mno_002dalign_002dint"></a>
  392. <p>Control whether GCC aligns <code>int</code>, <code>long</code>, <code>long long</code>,
  393. <code>float</code>, <code>double</code>, and <code>long double</code> variables on a 32-bit
  394. boundary (<samp>-malign-int</samp>) or a 16-bit boundary (<samp>-mno-align-int</samp>).
  395. Aligning variables on 32-bit boundaries produces code that runs somewhat
  396. faster on processors with 32-bit busses at the expense of more memory.
  397. </p>
  398. <p><strong>Warning:</strong> if you use the <samp>-malign-int</samp> switch, GCC
  399. aligns structures containing the above types differently than
  400. most published application binary interface specifications for the m68k.
  401. </p>
  402. </dd>
  403. <dt><code>-mpcrel</code></dt>
  404. <dd><a name="index-mpcrel"></a>
  405. <p>Use the pc-relative addressing mode of the 68000 directly, instead of
  406. using a global offset table. At present, this option implies <samp>-fpic</samp>,
  407. allowing at most a 16-bit offset for pc-relative addressing. <samp>-fPIC</samp> is
  408. not presently supported with <samp>-mpcrel</samp>, though this could be supported for
  409. 68020 and higher processors.
  410. </p>
  411. </dd>
  412. <dt><code>-mno-strict-align</code></dt>
  413. <dt><code>-mstrict-align</code></dt>
  414. <dd><a name="index-mno_002dstrict_002dalign"></a>
  415. <a name="index-mstrict_002dalign-1"></a>
  416. <p>Do not (do) assume that unaligned memory references are handled by
  417. the system.
  418. </p>
  419. </dd>
  420. <dt><code>-msep-data</code></dt>
  421. <dd><p>Generate code that allows the data segment to be located in a different
  422. area of memory from the text segment. This allows for execute-in-place in
  423. an environment without virtual memory management. This option implies
  424. <samp>-fPIC</samp>.
  425. </p>
  426. </dd>
  427. <dt><code>-mno-sep-data</code></dt>
  428. <dd><p>Generate code that assumes that the data segment follows the text segment.
  429. This is the default.
  430. </p>
  431. </dd>
  432. <dt><code>-mid-shared-library</code></dt>
  433. <dd><p>Generate code that supports shared libraries via the library ID method.
  434. This allows for execute-in-place and shared libraries in an environment
  435. without virtual memory management. This option implies <samp>-fPIC</samp>.
  436. </p>
  437. </dd>
  438. <dt><code>-mno-id-shared-library</code></dt>
  439. <dd><p>Generate code that doesn&rsquo;t assume ID-based shared libraries are being used.
  440. This is the default.
  441. </p>
  442. </dd>
  443. <dt><code>-mshared-library-id=n</code></dt>
  444. <dd><p>Specifies the identification number of the ID-based shared library being
  445. compiled. Specifying a value of 0 generates more compact code; specifying
  446. other values forces the allocation of that number to the current
  447. library, but is no more space- or time-efficient than omitting this option.
  448. </p>
  449. </dd>
  450. <dt><code>-mxgot</code></dt>
  451. <dt><code>-mno-xgot</code></dt>
  452. <dd><a name="index-mxgot"></a>
  453. <a name="index-mno_002dxgot"></a>
  454. <p>When generating position-independent code for ColdFire, generate code
  455. that works if the GOT has more than 8192 entries. This code is
  456. larger and slower than code generated without this option. On M680x0
  457. processors, this option is not needed; <samp>-fPIC</samp> suffices.
  458. </p>
  459. <p>GCC normally uses a single instruction to load values from the GOT.
  460. While this is relatively efficient, it only works if the GOT
  461. is smaller than about 64k. Anything larger causes the linker
  462. to report an error such as:
  463. </p>
  464. <a name="index-relocation-truncated-to-fit-_0028ColdFire_0029"></a>
  465. <div class="smallexample">
  466. <pre class="smallexample">relocation truncated to fit: R_68K_GOT16O foobar
  467. </pre></div>
  468. <p>If this happens, you should recompile your code with <samp>-mxgot</samp>.
  469. It should then work with very large GOTs. However, code generated with
  470. <samp>-mxgot</samp> is less efficient, since it takes 4 instructions to fetch
  471. the value of a global symbol.
  472. </p>
  473. <p>Note that some linkers, including newer versions of the GNU linker,
  474. can create multiple GOTs and sort GOT entries. If you have such a linker,
  475. you should only need to use <samp>-mxgot</samp> when compiling a single
  476. object file that accesses more than 8192 GOT entries. Very few do.
  477. </p>
  478. <p>These options have no effect unless GCC is generating
  479. position-independent code.
  480. </p>
  481. </dd>
  482. <dt><code>-mlong-jump-table-offsets</code></dt>
  483. <dd><a name="index-mlong_002djump_002dtable_002doffsets"></a>
  484. <p>Use 32-bit offsets in <code>switch</code> tables. The default is to use
  485. 16-bit offsets.
  486. </p>
  487. </dd>
  488. </dl>
  489. <hr>
  490. <div class="header">
  491. <p>
  492. Next: <a href="MCore-Options.html#MCore-Options" accesskey="n" rel="next">MCore Options</a>, Previous: <a href="M32R_002fD-Options.html#M32R_002fD-Options" accesskey="p" rel="prev">M32R/D Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  493. </div>
  494. </body>
  495. </html>