<br><br>On Thursday, May 20, 2021, Paul Mackerras &lt;<a href="mailto:paulus@ozlabs.org">paulus@ozlabs.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Arguably the spec could/should have something like this in the RTL:<br>
<br>
        if RA = 0 then<br>
                invalid_form()<br>
        else<br>
                ... (existing RTL)<br>
        endif</blockquote><div><br></div><div>agreed.</div><div><br></div><div>a case could be made for:</div><div>         if RA = 0 then<br>                invalid_form()<br>         ... (existing RTL)</div><div><br>on the basis that the function would return if the trap decided to allow the existing RTL to proceed.</div><div><br></div><div>i woild advocate that this is incorect, that your pseudocode is correct, on the basis that it is the *trap* that must take responsibility for full compliant (emulated) implementation of the instruction.</div><div><br></div><div>just like in lib/powerpc/sstep.c</div><div><br></div><div>l.</div><div><br></div><br><br>-- <br>---<br>crowd-funded eco-conscious hardware: <a href="https://www.crowdsupply.com/eoma68" target="_blank">https://www.crowdsupply.com/eoma68</a><br><br>