提交 7739f36e 编写于 作者: B bellard

fixed EIP exception bug in case of nop operations (kernel 2.5.74 copy_from_user() bug)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@320 c046a42c-6fe2-441c-8c8c-71466251a162
上级 f8c87998
...@@ -812,9 +812,9 @@ static inline int gen_intermediate_code_internal(TranslationBlock *tb, int searc ...@@ -812,9 +812,9 @@ static inline int gen_intermediate_code_internal(TranslationBlock *tb, int searc
lj++; lj++;
while (lj < j) while (lj < j)
gen_opc_instr_start[lj++] = 0; gen_opc_instr_start[lj++] = 0;
gen_opc_pc[lj] = (uint32_t)dc->pc;
gen_opc_instr_start[lj] = 1;
} }
gen_opc_pc[lj] = (uint32_t)dc->pc;
gen_opc_instr_start[lj] = 1;
} }
disas_arm_insn(dc); disas_arm_insn(dc);
} while (!dc->is_jmp && gen_opc_ptr < gen_opc_end && } while (!dc->is_jmp && gen_opc_ptr < gen_opc_end &&
......
...@@ -4122,10 +4122,10 @@ static inline int gen_intermediate_code_internal(TranslationBlock *tb, int searc ...@@ -4122,10 +4122,10 @@ static inline int gen_intermediate_code_internal(TranslationBlock *tb, int searc
lj++; lj++;
while (lj < j) while (lj < j)
gen_opc_instr_start[lj++] = 0; gen_opc_instr_start[lj++] = 0;
gen_opc_pc[lj] = (uint32_t)pc_ptr;
gen_opc_cc_op[lj] = dc->cc_op;
gen_opc_instr_start[lj] = 1;
} }
gen_opc_pc[lj] = (uint32_t)pc_ptr;
gen_opc_cc_op[lj] = dc->cc_op;
gen_opc_instr_start[lj] = 1;
} }
ret = disas_insn(dc, pc_ptr); ret = disas_insn(dc, pc_ptr);
if (ret == -1) { if (ret == -1) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册