mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-22 04:47:25 -04:00
Fix wrong jump calculation in case of JALR
This commit is contained in:
parent
e339efd56e
commit
c6f2cacb30
3 changed files with 7 additions and 2 deletions
|
@ -323,8 +323,8 @@ module riscv_decoder
|
|||
`ifdef NO_JUMP_ADDER
|
||||
jump_in_id = BRANCH_JALR;
|
||||
// Calculate jump target in EX
|
||||
alu_op_a_mux_sel_o = OP_A_CURRPC;
|
||||
alu_op_b_mux_sel_o = OP_B_REGA_OR_FWD;
|
||||
alu_op_a_mux_sel_o = OP_A_REGA_OR_FWD;
|
||||
alu_op_b_mux_sel_o = OP_B_ZERO;
|
||||
imm_b_mux_sel_o = IMMB_SB;
|
||||
alu_operator_o = ALU_ADD;
|
||||
regfile_alu_we = 1'b1;
|
||||
|
|
|
@ -848,6 +848,10 @@ module riscv_id_stage
|
|||
`endif // THREE_PORT_REG_FILE
|
||||
OP_B_IMM: operand_b = imm_b;
|
||||
OP_B_BMASK: operand_b = $unsigned(operand_b_fw_id[4:0]);
|
||||
// CONFIG_REGION: NO_JUMP_ADDER
|
||||
`ifdef NO_JUMP_ADDER
|
||||
OP_B_ZERO: operand_b = '0;
|
||||
`endif
|
||||
default: operand_b = operand_b_fw_id;
|
||||
endcase // case (alu_op_b_mux_sel)
|
||||
end
|
||||
|
|
|
@ -227,6 +227,7 @@ parameter OP_B_REGC_OR_FWD = 3'b001;
|
|||
parameter OP_B_IMM = 3'b010;
|
||||
parameter OP_B_REGA_OR_FWD = 3'b011;
|
||||
parameter OP_B_BMASK = 3'b100;
|
||||
parameter OP_B_ZERO = 3'b101;
|
||||
|
||||
// immediate b selection
|
||||
parameter IMMB_I = 4'b0000;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue