diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-03-29 01:18:03 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-03-29 01:18:03 +0000 |
commit | af4b6c54c141c1e2d3637fc15b912e82b88828cf (patch) | |
tree | d3d8895036656ebde5a1527bacd25afd2fbc4ce2 /target-ppc | |
parent | ed1dda53d073acdb52889aa30f9d251061b053bd (diff) |
target-ppc: avoid nop to override next instruction
While searching PC, always store the pc of a new instruction.
Instructions that didn't generate tcg code (such as nop) prevented the
next one to be referenced.
Based on patch for target-alpha, r6930.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6931 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc')
-rw-r--r-- | target-ppc/translate.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/target-ppc/translate.c b/target-ppc/translate.c index 952ee99d41..870aec5ec1 100644 --- a/target-ppc/translate.c +++ b/target-ppc/translate.c @@ -8213,10 +8213,10 @@ static always_inline void gen_intermediate_code_internal (CPUState *env, lj++; while (lj < j) gen_opc_instr_start[lj++] = 0; - gen_opc_pc[lj] = ctx.nip; - gen_opc_instr_start[lj] = 1; - gen_opc_icount[lj] = num_insns; } + gen_opc_pc[lj] = ctx.nip; + gen_opc_instr_start[lj] = 1; + gen_opc_icount[lj] = num_insns; } LOG_DISAS("----------------\n"); LOG_DISAS("nip=" ADDRX " super=%d ir=%d\n", |