blob: 9fec27ec4559c3df1955645404ae24650bba4ceb [file] [log] [blame]
<html lang="en">
<head>
<title>M32R-Warnings - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="M32R_002dDependent.html#M32R_002dDependent" title="M32R-Dependent">
<link rel="prev" href="M32R_002dDirectives.html#M32R_002dDirectives" title="M32R-Directives">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010 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 no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled ``GNU Free Documentation License''.
-->
<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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="M32R-Warnings"></a>
<a name="M32R_002dWarnings"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="M32R_002dDirectives.html#M32R_002dDirectives">M32R-Directives</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="M32R_002dDependent.html#M32R_002dDependent">M32R-Dependent</a>
<hr>
</div>
<h4 class="subsection">9.20.3 M32R Warnings</h4>
<p><a name="index-warnings_002c-M32R-1137"></a><a name="index-M32R-warnings-1138"></a>
There are several warning and error messages that can be produced by
<code>as</code> which are specific to the M32R:
<dl>
<dt><code>output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?</code><dd>This message is only produced if warnings for explicit parallel
conflicts have been enabled. It indicates that the assembler has
encountered a parallel instruction in which the destination register of
the left hand instruction is used as an input register in the right hand
instruction. For example in this code fragment
&lsquo;<samp><span class="samp">mv r1, r2 || neg r3, r1</span></samp>&rsquo; register r1 is the destination of the
move instruction and the input to the neg instruction.
<br><dt><code>output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?</code><dd>This message is only produced if warnings for explicit parallel
conflicts have been enabled. It indicates that the assembler has
encountered a parallel instruction in which the destination register of
the right hand instruction is used as an input register in the left hand
instruction. For example in this code fragment
&lsquo;<samp><span class="samp">mv r1, r2 || neg r2, r3</span></samp>&rsquo; register r2 is the destination of the
neg instruction and the input to the move instruction.
<br><dt><code>instruction &lsquo;</code><samp><span class="samp">...</span></samp><code>&rsquo; is for the M32RX only</code><dd>This message is produced when the assembler encounters an instruction
which is only supported by the M32Rx processor, and the &lsquo;<samp><span class="samp">-m32rx</span></samp>&rsquo;
command line flag has not been specified to allow assembly of such
instructions.
<br><dt><code>unknown instruction &lsquo;</code><samp><span class="samp">...</span></samp><code>&rsquo;</code><dd>This message is produced when the assembler encounters an instruction
which it does not recognize.
<br><dt><code>only the NOP instruction can be issued in parallel on the m32r</code><dd>This message is produced when the assembler encounters a parallel
instruction which does not involve a NOP instruction and the
&lsquo;<samp><span class="samp">-m32rx</span></samp>&rsquo; command line flag has not been specified. Only the M32Rx
processor is able to execute two instructions in parallel.
<br><dt><code>instruction &lsquo;</code><samp><span class="samp">...</span></samp><code>&rsquo; cannot be executed in parallel.</code><dd>This message is produced when the assembler encounters a parallel
instruction which is made up of one or two instructions which cannot be
executed in parallel.
<br><dt><code>Instructions share the same execution pipeline</code><dd>This message is produced when the assembler encounters a parallel
instruction whoes components both use the same execution pipeline.
<br><dt><code>Instructions write to the same destination register.</code><dd>This message is produced when the assembler encounters a parallel
instruction where both components attempt to modify the same register.
For example these code fragments will produce this message:
&lsquo;<samp><span class="samp">mv r1, r2 || neg r1, r3</span></samp>&rsquo;
&lsquo;<samp><span class="samp">jl r0 || mv r14, r1</span></samp>&rsquo;
&lsquo;<samp><span class="samp">st r2, @-r1 || mv r1, r3</span></samp>&rsquo;
&lsquo;<samp><span class="samp">mv r1, r2 || ld r0, @r1+</span></samp>&rsquo;
&lsquo;<samp><span class="samp">cmp r1, r2 || addx r3, r4</span></samp>&rsquo; (Both write to the condition bit)
</dl>
<!-- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2003, -->
<!-- 2004, 2006, 2007 Free Software Foundation, Inc. -->
<!-- This is part of the GAS manual. -->
<!-- For copying conditions, see the file as.texinfo. -->
</body></html>