OpenCores
URL https://opencores.org/ocsvn/ao68000/ao68000/trunk

Subversion Repositories ao68000

[/] [ao68000/] [trunk/] [doc/] [doxygen/] [html/] [page_microcode.html] - Diff between revs 12 and 13

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 12 Rev 13
Line 974... Line 974...
 
 
        p       .BRANCH_procedure().PROCEDURE_call_perform_ea_read();
        p       .BRANCH_procedure().PROCEDURE_call_perform_ea_read();
 
 
        p       .ALU_CHK();
        p       .ALU_CHK();
 
 
        p       .BRANCH_special_01().offset(<span class="stringliteral">&quot;chk_no_trap&quot;</span>);
        p       .BRANCH_alu_signal().offset(<span class="stringliteral">&quot;chk_no_trap&quot;</span>);
        p               .TRAP_CHK()
        p               .TRAP_CHK()
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        <span class="comment">// after return continue</span>
                        <span class="comment">// after return continue</span>
 
 
                <span class="comment">// jump here if no trap</span>
                <span class="comment">// jump here if no trap</span>
Line 996... Line 996...
        p       .OP2_FROM_OP1()
        p       .OP2_FROM_OP1()
                .SIZE_LONG().EA_REG_IR_11_9().EA_MOD_DN().EA_TYPE_ALL();
                .SIZE_LONG().EA_REG_IR_11_9().EA_MOD_DN().EA_TYPE_ALL();
 
 
        p       .BRANCH_procedure().PROCEDURE_call_perform_ea_read();
        p       .BRANCH_procedure().PROCEDURE_call_perform_ea_read();
 
 
        p       .ALU_MULS_MULU_DIVS_DIVU()
        p       .ALU_MULS_MULU_DIVS_DIVU();
                .MOVEM_LOOP_LOAD_0();
 
 
 
        p       .BRANCH_special_01().offset(<span class="stringliteral">&quot;div_no_div_by_zero_trap&quot;</span>);
        p       .BRANCH_alu_signal().offset(<span class="stringliteral">&quot;div_no_div_by_zero_trap&quot;</span>);
        p               .TRAP_DIV_BY_ZERO()
        p               .TRAP_DIV_BY_ZERO()
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        <span class="comment">// return after return</span>
                        <span class="comment">// return after return</span>
        p               .BRANCH_procedure().PROCEDURE_return();
        p               .BRANCH_procedure().PROCEDURE_return();
 
 
Line 1011... Line 1010...
        p       .label(<span class="stringliteral">&quot;div_no_div_by_zero_trap&quot;</span>);
        p       .label(<span class="stringliteral">&quot;div_no_div_by_zero_trap&quot;</span>);
 
 
                <span class="comment">// push current micro pc on stack</span>
                <span class="comment">// push current micro pc on stack</span>
        p       .BRANCH_procedure().PROCEDURE_push_micropc();
        p       .BRANCH_procedure().PROCEDURE_push_micropc();
 
 
                 <span class="comment">// check if loop finished</span>
                 <span class="comment">// check if operation finished</span>
        p       .BRANCH_movem_loop().offset(<span class="stringliteral">&quot;mult_div_loop_0&quot;</span>);
        p       .BRANCH_alu_mult_div_ready().offset(<span class="stringliteral">&quot;mult_div_loop&quot;</span>);
        p               .MOVEM_LOOP_INCR_BY_1()
        p               .BRANCH_procedure().PROCEDURE_return();
                        .BRANCH_procedure().PROCEDURE_return();
 
 
 
                <span class="comment">// jump here after first loop finished</span>
                <span class="comment">// jump here after first loop finished</span>
        p       .label(<span class="stringliteral">&quot;mult_div_loop_0&quot;</span>);
        p       .label(<span class="stringliteral">&quot;mult_div_loop&quot;</span>);
 
 
        p       .BRANCH_procedure().PROCEDURE_pop_micropc()
 
                .MOVEM_LOOP_LOAD_0();
 
 
 
                <span class="comment">// push current micro pc on stack</span>
 
        p       .BRANCH_procedure().PROCEDURE_push_micropc();
 
 
 
                 <span class="comment">// check if loop finished</span>
 
        p       .BRANCH_movem_loop().offset(<span class="stringliteral">&quot;mult_div_loop_1&quot;</span>);
 
        p               .MOVEM_LOOP_INCR_BY_1()
 
                        .BRANCH_procedure().PROCEDURE_return();
 
 
 
                <span class="comment">// jump here after second loop finished</span>
 
        p       .label(<span class="stringliteral">&quot;mult_div_loop_1&quot;</span>);
 
 
 
        p       .ALU_MULS_MULU_DIVS_DIVU()
        p       .ALU_MULS_MULU_DIVS_DIVU()
                .BRANCH_procedure().PROCEDURE_pop_micropc();
                .BRANCH_procedure().PROCEDURE_pop_micropc();
 
 
        p       .BRANCH_special_10().offset(<span class="stringliteral">&quot;mult_div_overflow&quot;</span>);
        p       .BRANCH_alu_signal().offset(<span class="stringliteral">&quot;mult_div_no_overflow&quot;</span>);
        p               .BRANCH_procedure().PROCEDURE_call_perform_ea_write();
        p           .BRANCH_procedure().PROCEDURE_return();
 
 
                <span class="comment">// jump here if overflow</span>
                <span class="comment">// jump here if overflow</span>
        p       .label(<span class="stringliteral">&quot;mult_div_overflow&quot;</span>);
        p       .label(<span class="stringliteral">&quot;mult_div_no_overflow&quot;</span>);
 
        p       .BRANCH_procedure().PROCEDURE_call_perform_ea_write();
        p       .BRANCH_procedure().PROCEDURE_return();
        p       .BRANCH_procedure().PROCEDURE_return();
 
 
        p.label(<span class="stringliteral">&quot;MICROPC_MOVEQ&quot;</span>);
        p.label(<span class="stringliteral">&quot;MICROPC_MOVEQ&quot;</span>);
 
 
        p       .OP1_MOVEQ()
        p       .OP1_MOVEQ()
Line 1565... Line 1549...
                .STOP_FLAG_SET()
                .STOP_FLAG_SET()
                .BRANCH_procedure().PROCEDURE_return();
                .BRANCH_procedure().PROCEDURE_return();
    }
    }
}
}
</pre></div> </div>
</pre></div> </div>
<hr class="footer"/><address class="footer"><small>Generated on Sat Dec 11 2010 13:21:13 for ao68000 by&#160;
<hr class="footer"/><address class="footer"><small>Generated on Sat Jan 15 2011 16:45:29 for ao68000 by&#160;
<a href="http://www.doxygen.org/index.html">
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
</body>
</body>
</html>
</html>
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.