bug in rem0x10001 fixed
authorcacao <none@none>
Wed, 7 Oct 1998 22:06:05 +0000 (22:06 +0000)
committercacao <none@none>
Wed, 7 Oct 1998 22:06:05 +0000 (22:06 +0000)
alpha/ngen.c

index 0bba6098e1ccae68ea5a1cefe19cb8f3233485aa..6f823f2751d93cfc67d4520e4cec48983f47b4b0 100644 (file)
@@ -1040,13 +1040,15 @@ static void gen_mcode()
                        M_SRA(s1, 16, d, 1);
                        M_CMPLT(REG_ITMP2, d, REG_ITMP1, 0);
                        M_ISUB(REG_ITMP2, d, d, 0);
+            M_ZAPNOT(d, 0x03, d, 1);
                        M_IADD(d, REG_ITMP1, d, 0);
-                       M_BGEZ(s1, 10);
+                       M_BGEZ(s1, 11);
                        M_ISUB(REG_ZERO, s1, REG_ITMP1, 0);
             M_ZAPNOT(REG_ITMP1, 0x03, REG_ITMP2, 1);
                        M_SRA(REG_ITMP1, 16, d, 1);
                        M_CMPLT(REG_ITMP2, d, REG_ITMP1, 0);
                        M_ISUB(REG_ITMP2, d, d, 0);
+            M_ZAPNOT(d, 0x03, d, 1);
                        M_IADD(d, REG_ITMP1, d, 0);
                        M_ISUB(REG_ZERO, d, d, 0);
                        M_SLL(s1, 33, REG_ITMP2, 1);
@@ -1146,6 +1148,7 @@ static void gen_mcode()
                        M_SRA(s1, 16, d, 1);
                        M_CMPLT(REG_ITMP2, d, REG_ITMP1, 0);
                        M_LSUB(REG_ITMP2, d, d, 0);
+            M_ZAPNOT(d, 0x03, d, 1);
                        M_LADD(d, REG_ITMP1, d, 0);
                        M_LDA(REG_ITMP2, REG_ZERO, -1);
                        M_SRL(REG_ITMP2, 33, REG_ITMP2, 1);