]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
fixed EIP exception bug in case of nop operations (kernel 2.5.74 copy_from_user(...
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 11 Jul 2003 14:49:22 +0000 (14:49 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 11 Jul 2003 14:49:22 +0000 (14:49 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@320 c046a42c-6fe2-441c-8c8c-71466251a162

translate-arm.c
translate-i386.c

index 6020e772d3103413f586f1c78c9acb2ca7c9c712..8b249ba15074ab157627b90848481d70f4ed81c8 100644 (file)
@@ -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 && 
index fdbd5ee92247669263bf6749569e0855f83a9b0b..a8ee672b24eaedc86720360d8df17dfc77306dc3 100644 (file)
@@ -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) {