You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
6.0 KiB
HTML

<html lang="en">
<head>
<title>MMIX Options - 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.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Submodel-Options.html#Submodel-Options" title="Submodel Options">
<link rel="prev" href="MIPS-Options.html#MIPS-Options" title="MIPS Options">
<link rel="next" href="MN10300-Options.html#MN10300-Options" title="MN10300 Options">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988-2015 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``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''.
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
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.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="MMIX-Options"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="MN10300-Options.html#MN10300-Options">MN10300 Options</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="MIPS-Options.html#MIPS-Options">MIPS Options</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Submodel-Options.html#Submodel-Options">Submodel Options</a>
<hr>
</div>
<h4 class="subsection">3.17.26 MMIX Options</h4>
<p><a name="index-MMIX-Options-2066"></a>
These options are defined for the MMIX:
<dl>
<dt><code>-mlibfuncs</code><dt><code>-mno-libfuncs</code><dd><a name="index-mlibfuncs-2067"></a><a name="index-mno_002dlibfuncs-2068"></a>Specify that intrinsic library functions are being compiled, passing all
values in registers, no matter the size.
<br><dt><code>-mepsilon</code><dt><code>-mno-epsilon</code><dd><a name="index-mepsilon-2069"></a><a name="index-mno_002depsilon-2070"></a>Generate floating-point comparison instructions that compare with respect
to the <code>rE</code> epsilon register.
<br><dt><code>-mabi=mmixware</code><dt><code>-mabi=gnu</code><dd><a name="index-mabi_003dmmixware-2071"></a><a name="index-mabi_003dgnu-2072"></a>Generate code that passes function parameters and return values that (in
the called function) are seen as registers <code>$0</code> and up, as opposed to
the GNU ABI which uses global registers <code>$231</code> and up.
<br><dt><code>-mzero-extend</code><dt><code>-mno-zero-extend</code><dd><a name="index-mzero_002dextend-2073"></a><a name="index-mno_002dzero_002dextend-2074"></a>When reading data from memory in sizes shorter than 64 bits, use (do not
use) zero-extending load instructions by default, rather than
sign-extending ones.
<br><dt><code>-mknuthdiv</code><dt><code>-mno-knuthdiv</code><dd><a name="index-mknuthdiv-2075"></a><a name="index-mno_002dknuthdiv-2076"></a>Make the result of a division yielding a remainder have the same sign as
the divisor. With the default, <samp><span class="option">-mno-knuthdiv</span></samp>, the sign of the
remainder follows the sign of the dividend. Both methods are
arithmetically valid, the latter being almost exclusively used.
<br><dt><code>-mtoplevel-symbols</code><dt><code>-mno-toplevel-symbols</code><dd><a name="index-mtoplevel_002dsymbols-2077"></a><a name="index-mno_002dtoplevel_002dsymbols-2078"></a>Prepend (do not prepend) a &lsquo;<samp><span class="samp">:</span></samp>&rsquo; to all global symbols, so the assembly
code can be used with the <code>PREFIX</code> assembly directive.
<br><dt><code>-melf</code><dd><a name="index-melf-2079"></a>Generate an executable in the ELF format, rather than the default
&lsquo;<samp><span class="samp">mmo</span></samp>&rsquo; format used by the <samp><span class="command">mmix</span></samp> simulator.
<br><dt><code>-mbranch-predict</code><dt><code>-mno-branch-predict</code><dd><a name="index-mbranch_002dpredict-2080"></a><a name="index-mno_002dbranch_002dpredict-2081"></a>Use (do not use) the probable-branch instructions, when static branch
prediction indicates a probable branch.
<br><dt><code>-mbase-addresses</code><dt><code>-mno-base-addresses</code><dd><a name="index-mbase_002daddresses-2082"></a><a name="index-mno_002dbase_002daddresses-2083"></a>Generate (do not generate) code that uses <em>base addresses</em>. Using a
base address automatically generates a request (handled by the assembler
and the linker) for a constant to be set up in a global register. The
register is used for one or more base address requests within the range 0
to 255 from the value held in the register. The generally leads to short
and fast code, but the number of different data items that can be
addressed is limited. This means that a program that uses lots of static
data may require <samp><span class="option">-mno-base-addresses</span></samp>.
<br><dt><code>-msingle-exit</code><dt><code>-mno-single-exit</code><dd><a name="index-msingle_002dexit-2084"></a><a name="index-mno_002dsingle_002dexit-2085"></a>Force (do not force) generated code to have a single exit point in each
function.
</dl>
</body></html>