Improved addition loops in GUIAm2910RegCntr and GUIinc12
[Mograsim.git] / net.mograsim.logic.model.am2900 / src / net / mograsim / logic / model / am2900 / components / am2910 / GUIAm2910RegCntr.java
index baf456a..ec228c1 100644 (file)
@@ -63,19 +63,8 @@ public class GUIAm2910RegCntr extends SimpleRectangularHardcodedGUIComponent
                                for (int i = 11; i >= 0; i--)
                                {
                                        Bit a = QC[i];
-                                       Bit z;
-                                       if (a.isBinary() && carry.isBinary())
-                                       {
-                                               boolean aBool = a == ONE;
-                                               boolean carryBool = carry == ONE;
-                                               z = !aBool ^ carryBool ? ONE : ZERO;
-                                               carry = aBool || carryBool ? ONE : ZERO;
-                                       } else
-                                       {
-                                               carry = carry.join(a);
-                                               z = carry;
-                                       }
-                                       QC[i] = z;
+                                       QC[i] = a.xnor(carry);
+                                       carry = a.or(carry);
                                }
                        }
                }