Make sure cmp{,eq,u}i use correct casts

This commit is contained in:
Michael Meissner 1996-09-20 01:42:15 +00:00
parent 81dc176f58
commit c12f5c678e
2 changed files with 11 additions and 5 deletions

View File

@ -1,3 +1,9 @@
Thu Sep 19 21:38:20 1996 Michael Meissner <meissner@wogglebug.ziplink.net>
* simops.c (OP_{401,2000000,601,3000000,23000000}): Get sign right
on comparisons.
(OP_401): Fix tracing information.
Thu Sep 19 10:30:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* simops.c (SIZE_{PC,LINE_NUMBER}): New default sizes for output.

View File

@ -874,9 +874,9 @@ OP_1403 ()
void
OP_401 ()
{
trace_input ("cmpeqi.s", OP_REG, OP_CONSTANT16, OP_VOID);
trace_input ("cmpeqi.s", OP_REG, OP_CONSTANT4, OP_VOID);
State.F1 = State.F0;
State.F0 = (State.regs[OP[0]] == SEXT4(OP[1])) ? 1 : 0;
State.F0 = (State.regs[OP[0]] == (reg_t)SEXT4(OP[1])) ? 1 : 0;
trace_output (OP_FLAG);
}
@ -886,7 +886,7 @@ OP_2000000 ()
{
trace_input ("cmpeqi.l", OP_REG, OP_CONSTANT16, OP_VOID);
State.F1 = State.F0;
State.F0 = (State.regs[OP[0]] == OP[1]) ? 1 : 0;
State.F0 = (State.regs[OP[0]] == (reg_t)OP[1]) ? 1 : 0;
trace_output (OP_FLAG);
}
@ -896,7 +896,7 @@ OP_601 ()
{
trace_input ("cmpi.s", OP_REG, OP_CONSTANT4, OP_VOID);
State.F1 = State.F0;
State.F0 = ((int16)(State.regs[OP[0]]) < SEXT4(OP[1])) ? 1 : 0;
State.F0 = ((int16)(State.regs[OP[0]]) < (int16)SEXT4(OP[1])) ? 1 : 0;
trace_output (OP_FLAG);
}
@ -926,7 +926,7 @@ OP_23000000 ()
{
trace_input ("cmpui", OP_REG, OP_CONSTANT16, OP_VOID);
State.F1 = State.F0;
State.F0 = (State.regs[OP[0]] < OP[1]) ? 1 : 0;
State.F0 = (State.regs[OP[0]] < (reg_t)OP[1]) ? 1 : 0;
trace_output (OP_FLAG);
}