mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-04 13:37:41 -07:00
Avoid host FPE for overflowing division on MIPS, by Richard Sandiford.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3856 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
6d35524c40
commit
306ab3e86a
1 changed files with 10 additions and 3 deletions
|
|
@ -230,9 +230,16 @@ void do_div (void)
|
|||
void do_ddiv (void)
|
||||
{
|
||||
if (T1 != 0) {
|
||||
lldiv_t res = lldiv((int64_t)T0, (int64_t)T1);
|
||||
env->LO[0][env->current_tc] = res.quot;
|
||||
env->HI[0][env->current_tc] = res.rem;
|
||||
int64_t arg0 = (int64_t)T0;
|
||||
int64_t arg1 = (int64_t)T1;
|
||||
if (arg0 == ((int64_t)-1 << 63) && arg1 == (int64_t)-1) {
|
||||
env->LO[0][env->current_tc] = arg0;
|
||||
env->HI[0][env->current_tc] = 0;
|
||||
} else {
|
||||
lldiv_t res = lldiv(arg0, arg1);
|
||||
env->LO[0][env->current_tc] = res.quot;
|
||||
env->HI[0][env->current_tc] = res.rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue