]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/tumbl.git/blobdiff - hw/exeq.vhd
Core updates
[fpga/lx-cpu1/tumbl.git] / hw / exeq.vhd
index 39214226cf201005f2f79b510121bdf5a3cd0926..ec5a6b12bbdb284f414a03b2f60eb0b798a79108 100644 (file)
@@ -23,8 +23,7 @@ LIBRARY IEEE;
 
 USE IEEE.std_logic_1164.all;
 USE IEEE.numeric_std.all;
-USE WORK.mbl_Pkg.all;
-
+USE WORK.mbl_pkg.all;
 
 ----------------------------------------------------------
 ENTITY exeq IS
@@ -274,7 +273,11 @@ p_exeq:
                                END IF;
 
                        WHEN A_MFS    =>
-                               result_v := MSR_i.C & C_24_ZEROS & "0000" & MSR_i.C & MSR_i.IE & '0';
+                               if (COMPATIBILITY_MODE_g = FALSE) THEN
+                                       result_v := C_24_ZEROS & "00000" & MSR_i.C & MSR_i.IE & '0';
+                               ELSE
+                                       result_v := MSR_i.C & C_24_ZEROS & "0000" & MSR_i.C & MSR_i.IE & '0';
+                               END IF;
 
                        WHEN A_MTS    =>
                                MSR_o.IE  <= data_Ra_v(1);
@@ -318,6 +321,10 @@ p_exeq:
                                        END IF;
                                END IF;     -- (USE_BARREL_g = TRUE)
 
+                       WHEN A_CLZ     =>
+                          tmp64_v := (OTHERS => '0');
+                               leading_zeroes32 ( in1_v, UNSIGNED(tmp64_v(31 DOWNTO 0)), result_v );
+
                        WHEN OTHERS    =>
                                NULL;