static branch incl prediction rc1
[calu.git] / cpu / src / writeback_stage_b.vhd
index eca841236b5677fce35b1c832f0b41816b606458..357368003f4202e20e0d483e0107ed0a9d772331 100644 (file)
@@ -95,7 +95,12 @@ begin
                end if; 
        end if;
 
-       jump <= alu_jmp xor br_pred;
+       jump <= (alu_jmp xor br_pred) and (write_en or wb_reg.dmem_en);
+
+       if alu_jmp = '0' and br_pred = '1' and write_en = '0' then
+               jump <= '1';
+       end if;
+
        jump_addr <= result;
        if ((alu_jmp and wb_reg.dmem_en) = '1') then
                jump_addr <= data_ram_read;