mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-27 12:56:07 +00:00
* compile.c (sim_resume): Fix and simplify overflow and carry
handling for 32bit ALU insns.
This commit is contained in:
parent
ee9897be1c
commit
9b1271617b
@ -1,3 +1,8 @@
|
||||
Fri Apr 12 09:39:56 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* compile.c (sim_resume): Fix and simplify overflow and carry
|
||||
handling for 32bit ALU insns.
|
||||
|
||||
Mon Apr 8 23:58:49 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* compile.c (sim_resume): Fix overflow checks for ALU insns.
|
||||
|
@ -1559,27 +1559,16 @@ sim_resume (step, siggnal)
|
||||
case O_ADD:
|
||||
v = ((rd & 0x80000000) == (ea & 0x80000000)
|
||||
&& (rd & 0x80000000) != (res & 0x80000000));
|
||||
c = ((unsigned) res < (unsigned) rd) || ((unsigned) res < (unsigned) ea);
|
||||
break;
|
||||
case O_SUB:
|
||||
case O_CMP:
|
||||
v = ((rd & 0x80000000) != (-ea & 0x80000000)
|
||||
&& (rd & 0x80000000) != (res & 0x80000000));
|
||||
break;
|
||||
case O_NEG:
|
||||
v = (rd == 0x80000000);
|
||||
break;
|
||||
}
|
||||
goto next;
|
||||
switch (code->opcode / 4)
|
||||
{
|
||||
case O_ADD:
|
||||
c = ((unsigned) res < (unsigned) rd) || ((unsigned) res < (unsigned) ea);
|
||||
break;
|
||||
case O_SUB:
|
||||
case O_CMP:
|
||||
c = (unsigned) rd < (unsigned) -ea;
|
||||
break;
|
||||
case O_NEG:
|
||||
v = (rd == 0x80000000);
|
||||
c = res != 0;
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user