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">"chk_no_trap"</span>);
|
p .BRANCH_alu_signal().offset(<span class="stringliteral">"chk_no_trap"</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">"div_no_div_by_zero_trap"</span>);
|
p .BRANCH_alu_signal().offset(<span class="stringliteral">"div_no_div_by_zero_trap"</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">"div_no_div_by_zero_trap"</span>);
|
p .label(<span class="stringliteral">"div_no_div_by_zero_trap"</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">"mult_div_loop_0"</span>);
|
p .BRANCH_alu_mult_div_ready().offset(<span class="stringliteral">"mult_div_loop"</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">"mult_div_loop_0"</span>);
|
p .label(<span class="stringliteral">"mult_div_loop"</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">"mult_div_loop_1"</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">"mult_div_loop_1"</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">"mult_div_overflow"</span>);
|
p .BRANCH_alu_signal().offset(<span class="stringliteral">"mult_div_no_overflow"</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">"mult_div_overflow"</span>);
|
p .label(<span class="stringliteral">"mult_div_no_overflow"</span>);
|
|
p .BRANCH_procedure().PROCEDURE_call_perform_ea_write();
|
p .BRANCH_procedure().PROCEDURE_return();
|
p .BRANCH_procedure().PROCEDURE_return();
|
|
|
p.label(<span class="stringliteral">"MICROPC_MOVEQ"</span>);
|
p.label(<span class="stringliteral">"MICROPC_MOVEQ"</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 
|
<hr class="footer"/><address class="footer"><small>Generated on Sat Jan 15 2011 16:45:29 for ao68000 by 
|
<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
|