Fix qemu crash due to sparc division-by-zero, by Aurelien Jarno.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2510 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
290a0933c0
commit
9bb234b3b1
@ -671,6 +671,11 @@ void OPPROTO op_udiv_T1_T0(void)
|
||||
|
||||
x0 = T0 | ((uint64_t) (env->y) << 32);
|
||||
x1 = T1;
|
||||
|
||||
if (x1 == 0) {
|
||||
raise_exception(TT_DIV_ZERO);
|
||||
}
|
||||
|
||||
x0 = x0 / x1;
|
||||
if (x0 > 0xffffffff) {
|
||||
T0 = 0xffffffff;
|
||||
@ -689,6 +694,11 @@ void OPPROTO op_sdiv_T1_T0(void)
|
||||
|
||||
x0 = T0 | ((int64_t) (env->y) << 32);
|
||||
x1 = T1;
|
||||
|
||||
if (x1 == 0) {
|
||||
raise_exception(TT_DIV_ZERO);
|
||||
}
|
||||
|
||||
x0 = x0 / x1;
|
||||
if ((int32_t) x0 != x0) {
|
||||
T0 = x0 < 0? 0x80000000: 0x7fffffff;
|
||||
|
Loading…
Reference in New Issue
Block a user