Added register indirect unconditional jump
This commit is contained in:
parent
9ed3dc3312
commit
3e484a0ceb
@ -514,6 +514,27 @@ always @( CIR or SIMPLE_MICRO or seq_addr_input ) begin
|
|||||||
reg_write_addr={1'b1,CIR[10:8]};
|
reg_write_addr={1'b1,CIR[10:8]};
|
||||||
seq_addr_entry=`UCODE_POP_ENTRY;
|
seq_addr_entry=`UCODE_POP_ENTRY;
|
||||||
end
|
end
|
||||||
|
11'b1111_1111_100:begin
|
||||||
|
/* JMP - Unconditional indirect within segment jump */
|
||||||
|
/* 1 1 1 1 1 1 1 1 | MOD 1 0 1 R/M | < DISP-LO > | < DISP-HI > */
|
||||||
|
`start_aligning_instruction
|
||||||
|
opcode_size=1;
|
||||||
|
has_operands=0;
|
||||||
|
Wbit=1;
|
||||||
|
IN_MOD={1'b0,CIR[7:6]};
|
||||||
|
RM=CIR[2:0];
|
||||||
|
in_alu1_sel1=2'b11;
|
||||||
|
if (IN_MOD==2'b11)begin
|
||||||
|
in_alu1_sel2=2'b01;
|
||||||
|
reg_read_port2_addr={Wbit,RM};
|
||||||
|
next_state=`PROC_EX_STATE_ENTRY;
|
||||||
|
end else begin
|
||||||
|
in_alu1_sel2=2'b00;
|
||||||
|
next_state=`PROC_MEMIO_READ;
|
||||||
|
end
|
||||||
|
ALU_1OP=`ALU_OP_ADD;
|
||||||
|
OUT_MOD=3'b101;
|
||||||
|
end
|
||||||
default:begin
|
default:begin
|
||||||
`invalid_instruction
|
`invalid_instruction
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user