]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/tumbl.git/blobdiff - hw/exeq.vhd
Correct unfinished/broken CMPU and CMP instructions and IT(TE) conditions.
[fpga/lx-cpu1/tumbl.git] / hw / exeq.vhd
index ec5a6b12bbdb284f414a03b2f60eb0b798a79108..512a97b3625cc8aa2d18d0847f00c4ef359a88c0 100644 (file)
@@ -216,8 +216,9 @@ p_exeq:
 
                                        WHEN A_CMPU  =>
                                                IF (signBit_in1_v = signBit_in2_v) THEN
-                                                       signBit_r_v := NOT signBit_in1_v;
+                                                       result_v(31) := NOT signBit_in1_v;
                                                END IF;
+                                               signBit_r_v := result_v(31);
                                                IF (COMPATIBILITY_MODE_g = FALSE) AND (ID2EX_i.it_Action /= NO_IT) THEN
                                                        -- have to update zero flag with current result
                                                        IF (result_v = C_32_ZEROS) THEN
@@ -229,8 +230,9 @@ p_exeq:
 
                                        WHEN A_CMP  =>
                                                IF (signBit_in1_v = signBit_in2_v) THEN
-                                                       signBit_r_v := signBit_in1_v;
+                                                       result_v(31) := signBit_in1_v;
                                                END IF;
+                                               signBit_r_v := result_v(31);
                                                IF (COMPATIBILITY_MODE_g = FALSE) AND (ID2EX_i.it_Action /= NO_IT) THEN
                                                        -- have to update zero flag with current result
                                                        IF (result_v = C_32_ZEROS) THEN