Commit 14a1120e5c8c4c29441141b4657f91e04d10fac0
1 parent
5a1237c4
Handle division by zero case in Sparc64 udivx and sdivx ops
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2767 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
6 additions
and
0 deletions
target-sparc/op.c
| ... | ... | @@ -926,12 +926,18 @@ void OPPROTO op_mulx_T1_T0(void) |
| 926 | 926 | |
| 927 | 927 | void OPPROTO op_udivx_T1_T0(void) |
| 928 | 928 | { |
| 929 | + if (T1 == 0) { | |
| 930 | + raise_exception(TT_DIV_ZERO); | |
| 931 | + } | |
| 929 | 932 | T0 /= T1; |
| 930 | 933 | FORCE_RET(); |
| 931 | 934 | } |
| 932 | 935 | |
| 933 | 936 | void OPPROTO op_sdivx_T1_T0(void) |
| 934 | 937 | { |
| 938 | + if (T1 == 0) { | |
| 939 | + raise_exception(TT_DIV_ZERO); | |
| 940 | + } | |
| 935 | 941 | if (T0 == INT64_MIN && T1 == -1) |
| 936 | 942 | T0 = INT64_MIN; |
| 937 | 943 | else | ... | ... |