OpenCores
Issue List
l.div and l.divu do not set carry on divide by zero with Or1ksim #91
Closed jeremybennett opened this issue over 14 years ago
jeremybennett commented over 14 years ago
<p> The OR1200 spec requires l.div and l.divu to set the carry flag on divide by zero as required. This doesn't happen in Or1ksim. </p> <p> Reported in <em>Implementation and Verification of a CPU Subsystem for Multimode RF Transceivers</em> by Waqas Ahmed of the Royal Institute of Technology, Sweden. </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> In testing another aspect of this bug appeared. On divide by zero l.div throws an illegal instruction exception, rather than a range exception. </p>
jeremybennett commented over 14 years ago
<p> Fixed in top of tree. Scheduled for inclusion in Or1ksim&nbsp;0.4.0rc2. </p> <p> Marking closed. </p> <p> Jeremy </p>
jeremybennett closed this over 14 years ago
rherveille commented over 14 years ago

Aha ... I was already wondering what exception was set during a divide by zero. So range expception is what should be used?

Which means a 'divide by zero' exception is the combination of 'range exception'+'carry' ??


Assignee
jeremybennett
Labels
Bug