]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/tumbl.git/commitdiff
When branching, do not execute the instruction behind the branch
authorMartin Meloun <meloumar@cmp.felk.cvut.cz>
Thu, 19 Sep 2013 19:17:48 +0000 (21:17 +0200)
committerMartin Meloun <meloumar@cmp.felk.cvut.cz>
Thu, 19 Sep 2013 19:17:48 +0000 (21:17 +0200)
Note: To effectively use this feature, gcc requires patching

hw/core_ctrl.vhd

index da5752b3e7765076d4fd744dd0f284bbb62db223..5e9d5a452bc2ad06a5123bc5b9787079593650cb 100644 (file)
@@ -257,7 +257,11 @@ regd_proc:
                 lp_rst_ID2EX_REG;
             ELSIF (clken_pipe_s = '1') THEN
                 setup_int_r <= '0';
-                ID2EX_REG_r <= ID2EX_REG_i;
+                if (EX2IF_REG_i.take_branch = '1') THEN
+                    lp_rst_ID2EX_REG;
+                ELSE
+                    ID2EX_REG_r <= ID2EX_REG_i;
+                END IF;
                 delayBit_r  <= ID2CTRL_i.delayBit;
             END IF;
             -- exeq-to-mem unit registers