target-cris: Mirror gen_opc_pc into insn_start
authorRichard Henderson <rth@twiddle.net>
Sun, 30 Aug 2015 16:35:14 +0000 (09:35 -0700)
committerRichard Henderson <rth@twiddle.net>
Wed, 7 Oct 2015 09:36:48 +0000 (20:36 +1100)
This perhaps isn't ideal in terms of (ab)using the "pc" field
to encode both pc and ppc + delay branch state, as one has to
be aware of this when examining opcode dumps.

But it preserves existing logic, which will be good for bisection,
and it certainly does save storage space.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
target-cris/translate.c

index 477bddc64b1906592a16b3ee75a95deb8b87ae9a..3d55a6ad68af8d1fdb56193fed95eb644fdc5024 100644 (file)
@@ -3174,7 +3174,8 @@ gen_intermediate_code_internal(CRISCPU *cpu, TranslationBlock *tb,
             tcg_ctx.gen_opc_instr_start[lj] = 1;
             tcg_ctx.gen_opc_icount[lj] = num_insns;
         }
-        tcg_gen_insn_start(dc->pc);
+        tcg_gen_insn_start(dc->delayed_branch == 1
+                           ? dc->ppc | 1 : dc->pc);
         num_insns++;
 
         if (unlikely(cpu_breakpoint_test(cs, dc->pc, BP_ANY))) {