summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-07-11 14:49:22 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-07-11 14:49:22 +0000
commit7739f36e38fa9f02a6079853e797aea1b647e968 (patch)
tree9b671bd5e6cb4cddeb2fdb29cfa72d041bfeb10d
parentf8c8799840d3250723de8247a1bb8c70a336f0f5 (diff)
downloadqemu-7739f36e38fa9f02a6079853e797aea1b647e968.tar.gz
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
-rw-r--r--translate-arm.c4
-rw-r--r--translate-i386.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/translate-arm.c b/translate-arm.c
index 6020e772d3..8b249ba150 100644
--- a/translate-arm.c
+++ b/translate-arm.c
@@ -812,9 +812,9 @@ static inline int gen_intermediate_code_internal(TranslationBlock *tb, int searc
lj++;
while (lj < j)
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);
} while (!dc->is_jmp && gen_opc_ptr < gen_opc_end &&
diff --git a/translate-i386.c b/translate-i386.c
index fdbd5ee922..a8ee672b24 100644
--- a/translate-i386.c
+++ b/translate-i386.c
@@ -4122,10 +4122,10 @@ static inline int gen_intermediate_code_internal(TranslationBlock *tb, int searc
lj++;
while (lj < j)
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);
if (ret == -1) {