* simops.c: Fix satadd, satsub boundary case handling.

This commit is contained in:
Jeff Law 1996-08-30 16:41:39 +00:00
parent 83fc3bac9f
commit 0e4ccc58f2
2 changed files with 7 additions and 5 deletions

View 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.

View 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;