l.xori in Or1ksim does not match behavior in architecture manual #110
Closedjeremybennett opened this issue over 14 years ago
jeremybennett commented over 14 years ago
<p>
The specification of <tt>l.xori</tt> was recently updated (see <a href="http://opencores.org/bug,view,1789">Bug 1789</a>). The implementation in Or1ksim does not match this behavior.
</p>
<p>
Jeremy
</p>
<p>
-- <br />
Tel: +44 (1590) 610184<br />
Cell: +44 (7970) 676050<br />
SkypeID: jeremybennett<br />
Email: <a href="mailto:jeremy.bennett@embecosm.com">jeremy.bennett@embecosm.com</a><br />
Web: <a href="http://www.embecosm.com">www.embecosm.com</a>
</p>
jeremybennett was assigned over 14 years ago
jeremybennett commented over 14 years ago
<p>
This architectural causes problems, since it changes the functional behavior of l.xori. In the absence of a l.not instruction
</p>
<pre>
l.xori rD,rA,-1
</pre>
<p>
is a convenient way to invert rA. This is heavily used by GCC.
</p>
<p>
This behavior will be made a configuration option in Or1ksim, but the default will be to treat this as a signed immediate.
</p>
<p>
Jeremy
</p>
jeremybennett commented over 14 years ago
<p>
New configuration option --enable-unsigned-xori added to Or1ksim and committed to top of tree.
</p>
<p>
This is as far as can be done with the current architecture. To make this the default would break all the existing code.
</p>
<p>
Marking closed.
</p>
<p>
Jeremy
</p>