⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmix-opts.html

📁 gcc手册
💻 HTML
字号:
<html lang="en">

<head>

<title>Using as</title>

<meta http-equiv="Content-Type" content="text/html">

<meta name="description" content="Using as">

<meta name="generator" content="makeinfo 4.3">

<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">

</head>

<body>

<div class="node">

<p>

Node:<a name="MMIX-Opts">MMIX-Opts</a>,

Next:<a rel="next" accesskey="n" href="MMIX-Expand.html#MMIX-Expand">MMIX-Expand</a>,

Up:<a rel="up" accesskey="u" href="MMIX-Dependent.html#MMIX-Dependent">MMIX-Dependent</a>

<hr><br>

</div>



<h4 class="section">Command-line Options</h4>



   <p>The MMIX version of <code>as</code> has some machine-dependent options.



   <p>When <code>--fixed-special-register-names</code> is specified, only the register

names specified in <a href="MMIX-Regs.html#MMIX-Regs">MMIX-Regs</a> are recognized in the instructions

<code>PUT</code> and <code>GET</code>.



   <p>You can use the <code>--globalize-symbols</code> to make all symbols global. 

This option is useful when splitting up a <code>mmixal</code> program into

several files.



   <p>The <code>--gnu-syntax</code> turns off most syntax compatibility with

<code>mmixal</code>.  Its usability is currently doubtful.



   <p>The <code>--relax</code> option is not fully supported, but will eventually make

the object file prepared for linker relaxation.



   <p>If you want to avoid inadvertently calling a predefined symbol and would

rather get an error, for example when using <code>as</code> with a

compiler or other machine-generated code, specify

<code>--no-predefined-syms</code>.  This turns off built-in predefined

definitions of all such symbols, including rounding-mode symbols, segment

symbols, <code>BIT</code> symbols, and <code>TRAP</code> symbols used in <code>mmix</code>

"system calls".  It also turns off predefined special-register names,

except when used in <code>PUT</code> and <code>GET</code> instructions.



   <p>By default, some instructions are expanded to fit the size of the operand

or an external symbol (see <a href="MMIX-Expand.html#MMIX-Expand">MMIX-Expand</a>).  By passing

<code>--no-expand</code>, no such expansion will be done, instead causing errors

at link time if the operand does not fit.



   <p>The <code>mmixal</code> documentation (see <a href="mmixsite.html#mmixsite">mmixsite</a>) specifies that global

registers allocated with the <code>GREG</code> directive (see <a href="MMIX-greg.html#MMIX-greg">MMIX-greg</a>) and

initialized to the same non-zero value, will refer to the same global

register.  This isn't strictly enforcable in <code>as</code> since the

final addresses aren't known until link-time, but it will do an effort

unless the <code>--no-merge-gregs</code> option is specified.  (Register merging

isn't yet implemented in <code>ld</code>.)



   <p><code>as</code> will warn every time it expands an instruction to fit an

operand unless the option <code>-x</code> is specified.  It is believed that

this behaviour is more useful than just mimicking <code>mmixal</code>'s

behaviour, in which instructions are only expanded if the <code>-x</code> option

is specified, and assembly fails otherwise, when an instruction needs to

be expanded.  It needs to be kept in mind that <code>mmixal</code> is both an

assembler and linker, while <code>as</code> will expand instructions

that at link stage can be contracted.  (Though linker relaxation isn't yet

implemented in <code>ld</code>.)  The option <code>-x</code> also imples

<code>--linker-allocated-gregs</code>.



   <p>Usually a two-operand-expression (see <a href="GREG-base.html#GREG-base">GREG-base</a>) without a matching

<code>GREG</code> directive is treated as an error by <code>as</code>.  When

the option <code>--linker-allocated-gregs</code> is in effect, they are instead

passed through to the linker, which will allocate as many global registers

as is needed.



   </body></html>



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -