* dsp.igen (do_ph_shift, do_w_shra): Fix bugs for rounding instructions.

This commit is contained in:
Chao-ying Fu 2006-05-15 20:34:18 +00:00
parent b079691183
commit 69088b1706
2 changed files with 12 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2006-05-15 Chao-ying Fu <fu@mips.com>
* dsp.igen (do_ph_shift, do_w_shra): Fix bugs for rounding instructions.
2006-04-18 Nick Clifton <nickc@redhat.com>
* dv-tx3904tmr.c (deliver_tx3904tmr_tick): Add missing break

View File

@ -193,9 +193,10 @@
}
else // right
{
if (sat == 1 && shift != 0)
h0 += (1 << (shift - 1));
h0 = h0 >> shift;
if (sat == 1 && shift != 0 && (h0 & (1 << (shift-1))))
h0 = (h0 >> shift) + 1;
else
h0 = h0 >> shift;
}
result |= ((unsigned32)((unsigned16)h0) << i);
@ -246,9 +247,10 @@
{
unsigned32 result = GPR[rt];
signed32 h0 = (signed32)result;
if (shift != 0)
h0 += (1 << (shift - 1));
h0 = h0 >> shift;
if (shift != 0 && (h0 & (1 << (shift-1))))
h0 = (h0 >> shift) + 1;
else
h0 = h0 >> shift;
GPR[rd] = EXTEND32 (h0);
}