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

Subversion Repositories ao68000

[/] [ao68000/] [trunk/] [sw/] [ao68000_tool/] [Microcode.java] - Diff between revs 12 and 13

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

Rev 12 Rev 13
Line 943... Line 943...
 
 
        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("chk_no_trap");
        p       .BRANCH_alu_signal().offset("chk_no_trap");
        p               .TRAP_CHK()
        p               .TRAP_CHK()
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        // after return continue
                        // after return continue
 
 
                // jump here if no trap
                // jump here if no trap
Line 965... Line 965...
        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("div_no_div_by_zero_trap");
        p       .BRANCH_alu_signal().offset("div_no_div_by_zero_trap");
        p               .TRAP_DIV_BY_ZERO()
        p               .TRAP_DIV_BY_ZERO()
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        .BRANCH_procedure().PROCEDURE_call_trap();
                        // return after return
                        // return after return
        p               .BRANCH_procedure().PROCEDURE_return();
        p               .BRANCH_procedure().PROCEDURE_return();
 
 
Line 980... Line 979...
        p       .label("div_no_div_by_zero_trap");
        p       .label("div_no_div_by_zero_trap");
 
 
                // push current micro pc on stack
                // push current micro pc on stack
        p       .BRANCH_procedure().PROCEDURE_push_micropc();
        p       .BRANCH_procedure().PROCEDURE_push_micropc();
 
 
                 // check if loop finished
                 // check if operation finished
        p       .BRANCH_movem_loop().offset("mult_div_loop_0");
        p       .BRANCH_alu_mult_div_ready().offset("mult_div_loop");
        p               .MOVEM_LOOP_INCR_BY_1()
        p               .BRANCH_procedure().PROCEDURE_return();
                        .BRANCH_procedure().PROCEDURE_return();
 
 
 
                // jump here after first loop finished
                // jump here after first loop finished
        p       .label("mult_div_loop_0");
        p       .label("mult_div_loop");
 
 
        p       .BRANCH_procedure().PROCEDURE_pop_micropc()
 
                .MOVEM_LOOP_LOAD_0();
 
 
 
                // push current micro pc on stack
 
        p       .BRANCH_procedure().PROCEDURE_push_micropc();
 
 
 
                 // check if loop finished
 
        p       .BRANCH_movem_loop().offset("mult_div_loop_1");
 
        p               .MOVEM_LOOP_INCR_BY_1()
 
                        .BRANCH_procedure().PROCEDURE_return();
 
 
 
                // jump here after second loop finished
 
        p       .label("mult_div_loop_1");
 
 
 
        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("mult_div_overflow");
        p       .BRANCH_alu_signal().offset("mult_div_no_overflow");
        p               .BRANCH_procedure().PROCEDURE_call_perform_ea_write();
        p           .BRANCH_procedure().PROCEDURE_return();
 
 
                // jump here if overflow
                // jump here if overflow
        p       .label("mult_div_overflow");
        p       .label("mult_div_no_overflow");
 
        p       .BRANCH_procedure().PROCEDURE_call_perform_ea_write();
        p       .BRANCH_procedure().PROCEDURE_return();
        p       .BRANCH_procedure().PROCEDURE_return();
 
 
        p.label("MICROPC_MOVEQ");
        p.label("MICROPC_MOVEQ");
 
 
        p       .OP1_MOVEQ()
        p       .OP1_MOVEQ()

powered by: WebSVN 2.1.0

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