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 | ... | ... |