Commit b6d7c3db4fd7b375e649b35c2d0722ef00f8fb35
1 parent
e034e2c3
Fix division by zero handling, by Joris van Rantwijk.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3012 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
6 additions
and
2 deletions
target-i386/translate.c
... | ... | @@ -5327,8 +5327,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) |
5327 | 5327 | if (CODE64(s)) |
5328 | 5328 | goto illegal_op; |
5329 | 5329 | val = ldub_code(s->pc++); |
5330 | - gen_op_aam(val); | |
5331 | - s->cc_op = CC_OP_LOGICB; | |
5330 | + if (val == 0) { | |
5331 | + gen_exception(s, EXCP00_DIVZ, pc_start - s->cs_base); | |
5332 | + } else { | |
5333 | + gen_op_aam(val); | |
5334 | + s->cc_op = CC_OP_LOGICB; | |
5335 | + } | |
5332 | 5336 | break; |
5333 | 5337 | case 0xd5: /* aad */ |
5334 | 5338 | if (CODE64(s)) | ... | ... |