* simops.c: Fix satadd, satsub boundary case handling.
authorJeff Law <law@redhat.com>
Fri, 30 Aug 1996 16:41:39 +0000 (16:41 +0000)
committerJeff Law <law@redhat.com>
Fri, 30 Aug 1996 16:41:39 +0000 (16:41 +0000)
sim/v850/ChangeLog
sim/v850/simops.c

index 8c1cbbf..09156fe 100644 (file)
@@ -1,5 +1,7 @@
 Fri Aug 30 10:33:49 1996  Jeffrey A Law  (law@cygnus.com)
 
+       * simops.c: Fix satadd, satsub boundary case handling.
+
        * interp.c (hash): Fix.
        * interp.c (do_format_8): Get operands correctly and
        call the target function.
index 1586b11..c6969fe 100644 (file)
@@ -824,7 +824,7 @@ OP_C0 ()
                | (sat ? PSW_SAT : 0));
 
   /* Handle saturated results.  */
-  if (sat && (op0 & 0x80000000))
+  if (sat && s)
     State.regs[OP[1]] = 0x80000000;
   else if (sat)
     State.regs[OP[1]] = 0x7fffffff;
@@ -861,7 +861,7 @@ OP_220 ()
                | (sat ? PSW_SAT : 0));
 
   /* Handle saturated results.  */
-  if (sat && (op0 & 0x80000000))
+  if (sat && s)
     State.regs[OP[1]] = 0x80000000;
   else if (sat)
     State.regs[OP[1]] = 0x7fffffff;
@@ -894,7 +894,7 @@ OP_A0 ()
                | (sat ? PSW_SAT : 0));
 
   /* Handle saturated results.  */
-  if (sat && (op1 & 0x80000000))
+  if (sat && s)
     State.regs[OP[1]] = 0x80000000;
   else if (sat)
     State.regs[OP[1]] = 0x7fffffff;
@@ -930,7 +930,7 @@ OP_660 ()
                | (sat ? PSW_SAT : 0));
 
   /* Handle saturated results.  */
-  if (sat && (op1 & 0x80000000))
+  if (sat && s)
     State.regs[OP[1]] = 0x80000000;
   else if (sat)
     State.regs[OP[1]] = 0x7fffffff;
@@ -962,7 +962,7 @@ OP_80 ()
                | (sat ? PSW_SAT : 0));
 
   /* Handle saturated results.  */
-  if (sat && (op0 & 0x80000000))
+  if (sat && s)
     State.regs[OP[1]] = 0x80000000;
   else if (sat)
     State.regs[OP[1]] = 0x7fffffff;