On Tue, Nov 6, 2012 at 4:41 AM, Evgeny Voevodin <e.voevo...@samsung.com> wrote: > Signed-off-by: Evgeny Voevodin <e.voevo...@samsung.com> > Reviewed-by: Richard Henderson <r...@twiddle.net> > --- > target-alpha/translate.c | 8 ++--- > target-arm/translate.c | 8 ++--- > target-cris/translate.c | 10 +++--- > target-i386/translate.c | 8 ++--- > target-lm32/translate.c | 10 +++--- > target-m68k/translate.c | 8 ++--- > target-microblaze/translate.c | 10 +++--- > target-mips/translate.c | 9 +++--- > target-openrisc/translate.c | 10 +++--- > target-ppc/translate.c | 9 +++--- > target-s390x/translate.c | 9 +++--- > target-sh4/translate.c | 8 ++--- > target-sparc/translate.c | 8 ++--- > target-unicore32/translate.c | 8 ++--- > target-xtensa/translate.c | 6 ++-- > tcg/tcg-op.h | 70 > ++++++++++++++++++++--------------------- > tcg/tcg.c | 16 +++++----- > 17 files changed, 109 insertions(+), 106 deletions(-) > > diff --git a/target-alpha/translate.c b/target-alpha/translate.c > index f707d8d..6676cbf 100644 > --- a/target-alpha/translate.c > +++ b/target-alpha/translate.c > @@ -3406,7 +3406,7 @@ static inline void > gen_intermediate_code_internal(CPUAlphaState *env, > } > } > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -3432,7 +3432,7 @@ static inline void > gen_intermediate_code_internal(CPUAlphaState *env, > or exhaust instruction count, stop generation. */ > if (ret == NO_EXIT > && ((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0 > - || gen_opc_ptr >= gen_opc_end > + || tcg_ctx.gen_opc_ptr >= gen_opc_end > || num_insns >= max_insns > || singlestep > || env->singlestep_enabled)) { > @@ -3463,9 +3463,9 @@ static inline void > gen_intermediate_code_internal(CPUAlphaState *env, > } > > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-arm/translate.c b/target-arm/translate.c > index 25433da..ff5d294 100644 > --- a/target-arm/translate.c > +++ b/target-arm/translate.c > @@ -9834,7 +9834,7 @@ static inline void > gen_intermediate_code_internal(CPUARMState *env, > } > } > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -9881,7 +9881,7 @@ static inline void > gen_intermediate_code_internal(CPUARMState *env, > * Also stop translation when a page boundary is reached. This > * ensures prefetch aborts occur at the right place. */ > num_insns ++; > - } while (!dc->is_jmp && gen_opc_ptr < gen_opc_end && > + } while (!dc->is_jmp && tcg_ctx.gen_opc_ptr < gen_opc_end && > !env->singlestep_enabled && > !singlestep && > dc->pc < next_page_start && > @@ -9962,7 +9962,7 @@ static inline void > gen_intermediate_code_internal(CPUARMState *env, > > done_generating: > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > > #ifdef DEBUG_DISAS > if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) { > @@ -9974,7 +9974,7 @@ done_generating: > } > #endif > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-cris/translate.c b/target-cris/translate.c > index 27b82cf..e34288e 100644 > --- a/target-cris/translate.c > +++ b/target-cris/translate.c > @@ -3297,7 +3297,7 @@ gen_intermediate_code_internal(CPUCRISState *env, > TranslationBlock *tb, > check_breakpoint(env, dc); > > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) { > @@ -3381,7 +3381,7 @@ gen_intermediate_code_internal(CPUCRISState *env, > TranslationBlock *tb, > break; > } > } while (!dc->is_jmp && !dc->cpustate_changed > - && gen_opc_ptr < gen_opc_end > + && tcg_ctx.gen_opc_ptr < gen_opc_end > && !singlestep > && (dc->pc < next_page_start) > && num_insns < max_insns); > @@ -3434,9 +3434,9 @@ gen_intermediate_code_internal(CPUCRISState *env, > TranslationBlock *tb, > } > } > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) { > gen_opc_instr_start[lj++] = 0; > @@ -3452,7 +3452,7 @@ gen_intermediate_code_internal(CPUCRISState *env, > TranslationBlock *tb, > log_target_disas(pc_start, dc->pc - pc_start, > dc->env->pregs[PR_VR]); > qemu_log("\nisize=%d osize=%td\n", > - dc->pc - pc_start, gen_opc_ptr - gen_opc_buf); > + dc->pc - pc_start, gtcg_ctx.en_opc_ptr - gen_opc_buf);
Patch is broken: /src/qemu/target-cris/translate.c: In function 'gen_intermediate_code_internal': /src/qemu/target-cris/translate.c:3455: error: 'gtcg_ctx' undeclared (first use in this function) /src/qemu/target-cris/translate.c:3455: error: (Each undeclared identifier is reported only once /src/qemu/target-cris/translate.c:3455: error: for each function it appears in.) > } > #endif > #endif > diff --git a/target-i386/translate.c b/target-i386/translate.c > index ee75850..5f977d9 100644 > --- a/target-i386/translate.c > +++ b/target-i386/translate.c > @@ -7980,7 +7980,7 @@ static inline void > gen_intermediate_code_internal(CPUX86State *env, > } > } > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -8011,7 +8011,7 @@ static inline void > gen_intermediate_code_internal(CPUX86State *env, > break; > } > /* if too long translation, stop generation too */ > - if (gen_opc_ptr >= gen_opc_end || > + if (tcg_ctx.gen_opc_ptr >= gen_opc_end || > (pc_ptr - pc_start) >= (TARGET_PAGE_SIZE - 32) || > num_insns >= max_insns) { > gen_jmp_im(pc_ptr - dc->cs_base); > @@ -8027,10 +8027,10 @@ static inline void > gen_intermediate_code_internal(CPUX86State *env, > if (tb->cflags & CF_LAST_IO) > gen_io_end(); > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > /* we don't forget to fill the last values */ > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-lm32/translate.c b/target-lm32/translate.c > index 77c2866..7446a50 100644 > --- a/target-lm32/translate.c > +++ b/target-lm32/translate.c > @@ -1047,7 +1047,7 @@ static void gen_intermediate_code_internal(CPULM32State > *env, > check_breakpoint(env, dc); > > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) { > @@ -1071,7 +1071,7 @@ static void gen_intermediate_code_internal(CPULM32State > *env, > num_insns++; > > } while (!dc->is_jmp > - && gen_opc_ptr < gen_opc_end > + && tcg_ctx.gen_opc_ptr < gen_opc_end > && !env->singlestep_enabled > && !singlestep > && (dc->pc < next_page_start) > @@ -1105,9 +1105,9 @@ static void gen_intermediate_code_internal(CPULM32State > *env, > } > > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) { > gen_opc_instr_start[lj++] = 0; > @@ -1122,7 +1122,7 @@ static void gen_intermediate_code_internal(CPULM32State > *env, > qemu_log("\n"); > log_target_disas(pc_start, dc->pc - pc_start, 0); > qemu_log("\nisize=%d osize=%td\n", > - dc->pc - pc_start, gen_opc_ptr - gen_opc_buf); > + dc->pc - pc_start, tcg_ctx.gen_opc_ptr - gen_opc_buf); > } > #endif > } > diff --git a/target-m68k/translate.c b/target-m68k/translate.c > index 451ef74..568e187 100644 > --- a/target-m68k/translate.c > +++ b/target-m68k/translate.c > @@ -3015,7 +3015,7 @@ gen_intermediate_code_internal(CPUM68KState *env, > TranslationBlock *tb, > break; > } > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -3030,7 +3030,7 @@ gen_intermediate_code_internal(CPUM68KState *env, > TranslationBlock *tb, > dc->insn_pc = dc->pc; > disas_m68k_insn(env, dc); > num_insns++; > - } while (!dc->is_jmp && gen_opc_ptr < gen_opc_end && > + } while (!dc->is_jmp && tcg_ctx.gen_opc_ptr < gen_opc_end && > !env->singlestep_enabled && > !singlestep && > (pc_offset) < (TARGET_PAGE_SIZE - 32) && > @@ -3064,7 +3064,7 @@ gen_intermediate_code_internal(CPUM68KState *env, > TranslationBlock *tb, > } > } > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > > #ifdef DEBUG_DISAS > if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) { > @@ -3075,7 +3075,7 @@ gen_intermediate_code_internal(CPUM68KState *env, > TranslationBlock *tb, > } > #endif > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c > index 7d864b1..a3bd799 100644 > --- a/target-microblaze/translate.c > +++ b/target-microblaze/translate.c > @@ -1784,7 +1784,7 @@ gen_intermediate_code_internal(CPUMBState *env, > TranslationBlock *tb, > check_breakpoint(env, dc); > > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -1846,7 +1846,7 @@ gen_intermediate_code_internal(CPUMBState *env, > TranslationBlock *tb, > if (env->singlestep_enabled) > break; > } while (!dc->is_jmp && !dc->cpustate_changed > - && gen_opc_ptr < gen_opc_end > + && tcg_ctx.gen_opc_ptr < gen_opc_end > && !singlestep > && (dc->pc < next_page_start) > && num_insns < max_insns); > @@ -1897,9 +1897,9 @@ gen_intermediate_code_internal(CPUMBState *env, > TranslationBlock *tb, > } > } > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > @@ -1916,7 +1916,7 @@ gen_intermediate_code_internal(CPUMBState *env, > TranslationBlock *tb, > log_target_disas(pc_start, dc->pc - pc_start, 0); > #endif > qemu_log("\nisize=%d osize=%td\n", > - dc->pc - pc_start, gen_opc_ptr - gen_opc_buf); > + dc->pc - pc_start, tcg_ctx.gen_opc_ptr - gen_opc_buf); > } > #endif > #endif > diff --git a/target-mips/translate.c b/target-mips/translate.c > index 8175da0..c86e16e 100644 > --- a/target-mips/translate.c > +++ b/target-mips/translate.c > @@ -15545,7 +15545,7 @@ gen_intermediate_code_internal (CPUMIPSState *env, > TranslationBlock *tb, > } > > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -15593,8 +15593,9 @@ gen_intermediate_code_internal (CPUMIPSState *env, > TranslationBlock *tb, > if ((ctx.pc & (TARGET_PAGE_SIZE - 1)) == 0) > break; > > - if (gen_opc_ptr >= gen_opc_end) > + if (tcg_ctx.gen_opc_ptr >= gen_opc_end) { > break; > + } > > if (num_insns >= max_insns) > break; > @@ -15626,9 +15627,9 @@ gen_intermediate_code_internal (CPUMIPSState *env, > TranslationBlock *tb, > } > done_generating: > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-openrisc/translate.c b/target-openrisc/translate.c > index e2cad3a..db977ca 100644 > --- a/target-openrisc/translate.c > +++ b/target-openrisc/translate.c > @@ -1703,7 +1703,7 @@ static inline void > gen_intermediate_code_internal(OpenRISCCPU *cpu, > do { > check_breakpoint(cpu, dc); > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (k < j) { > k++; > while (k < j) { > @@ -1744,7 +1744,7 @@ static inline void > gen_intermediate_code_internal(OpenRISCCPU *cpu, > } > } > } while (!dc->is_jmp > - && gen_opc_ptr < gen_opc_end > + && tcg_ctx.gen_opc_ptr < gen_opc_end > && !cpu->env.singlestep_enabled > && !singlestep > && (dc->pc < next_page_start) > @@ -1782,9 +1782,9 @@ static inline void > gen_intermediate_code_internal(OpenRISCCPU *cpu, > } > > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > k++; > while (k <= j) { > gen_opc_instr_start[k++] = 0; > @@ -1799,7 +1799,7 @@ static inline void > gen_intermediate_code_internal(OpenRISCCPU *cpu, > qemu_log("\n"); > log_target_disas(pc_start, dc->pc - pc_start, 0); > qemu_log("\nisize=%d osize=%td\n", > - dc->pc - pc_start, gen_opc_ptr - gen_opc_buf); > + dc->pc - pc_start, tcg_ctx.gen_opc_ptr - gen_opc_buf); > } > #endif > } > diff --git a/target-ppc/translate.c b/target-ppc/translate.c > index 56725e6..d30abd0 100644 > --- a/target-ppc/translate.c > +++ b/target-ppc/translate.c > @@ -9664,7 +9664,8 @@ static inline void > gen_intermediate_code_internal(CPUPPCState *env, > > gen_icount_start(); > /* Set env in case of segfault during code fetch */ > - while (ctx.exception == POWERPC_EXCP_NONE && gen_opc_ptr < gen_opc_end) { > + while (ctx.exception == POWERPC_EXCP_NONE > + && tcg_ctx.gen_opc_ptr < gen_opc_end) { > if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { > QTAILQ_FOREACH(bp, &env->breakpoints, entry) { > if (bp->pc == ctx.nip) { > @@ -9674,7 +9675,7 @@ static inline void > gen_intermediate_code_internal(CPUPPCState *env, > } > } > if (unlikely(search_pc)) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -9774,9 +9775,9 @@ static inline void > gen_intermediate_code_internal(CPUPPCState *env, > tcg_gen_exit_tb(0); > } > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (unlikely(search_pc)) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-s390x/translate.c b/target-s390x/translate.c > index db464cc..85ba318 100644 > --- a/target-s390x/translate.c > +++ b/target-s390x/translate.c > @@ -5156,7 +5156,7 @@ static inline void > gen_intermediate_code_internal(CPUS390XState *env, > } > } > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) { > @@ -5182,7 +5182,8 @@ static inline void > gen_intermediate_code_internal(CPUS390XState *env, > if (env->singlestep_enabled) { > gen_debug(&dc); > } > - } while (!dc.is_jmp && gen_opc_ptr < gen_opc_end && dc.pc < > next_page_start > + } while (!dc.is_jmp && tcg_ctx.gen_opc_ptr < gen_opc_end > + && dc.pc < next_page_start > && num_insns < max_insns && !env->singlestep_enabled > && !singlestep); > > @@ -5206,9 +5207,9 @@ static inline void > gen_intermediate_code_internal(CPUS390XState *env, > tcg_gen_exit_tb(0); > } > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) { > gen_opc_instr_start[lj++] = 0; > diff --git a/target-sh4/translate.c b/target-sh4/translate.c > index 9d955eb..4521c1c 100644 > --- a/target-sh4/translate.c > +++ b/target-sh4/translate.c > @@ -1986,7 +1986,7 @@ gen_intermediate_code_internal(CPUSH4State * env, > TranslationBlock * tb, > if (max_insns == 0) > max_insns = CF_COUNT_MASK; > gen_icount_start(); > - while (ctx.bstate == BS_NONE && gen_opc_ptr < gen_opc_end) { > + while (ctx.bstate == BS_NONE && tcg_ctx.gen_opc_ptr < gen_opc_end) { > if (unlikely(!QTAILQ_EMPTY(&env->breakpoints))) { > QTAILQ_FOREACH(bp, &env->breakpoints, entry) { > if (ctx.pc == bp->pc) { > @@ -1999,7 +1999,7 @@ gen_intermediate_code_internal(CPUSH4State * env, > TranslationBlock * tb, > } > } > if (search_pc) { > - i = gen_opc_ptr - gen_opc_buf; > + i = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (ii < i) { > ii++; > while (ii < i) > @@ -2056,9 +2056,9 @@ gen_intermediate_code_internal(CPUSH4State * env, > TranslationBlock * tb, > } > > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (search_pc) { > - i = gen_opc_ptr - gen_opc_buf; > + i = tcg_ctx.gen_opc_ptr - gen_opc_buf; > ii++; > while (ii <= i) > gen_opc_instr_start[ii++] = 0; > diff --git a/target-sparc/translate.c b/target-sparc/translate.c > index 9e46f14..d179675 100644 > --- a/target-sparc/translate.c > +++ b/target-sparc/translate.c > @@ -5279,7 +5279,7 @@ static inline void > gen_intermediate_code_internal(TranslationBlock * tb, > } > if (spc) { > qemu_log("Search PC...\n"); > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) > @@ -5312,7 +5312,7 @@ static inline void > gen_intermediate_code_internal(TranslationBlock * tb, > if (dc->singlestep) { > break; > } > - } while ((gen_opc_ptr < gen_opc_end) && > + } while ((tcg_ctx.gen_opc_ptr < gen_opc_end) && > (dc->pc - pc_start) < (TARGET_PAGE_SIZE - 32) && > num_insns < max_insns); > > @@ -5334,9 +5334,9 @@ static inline void > gen_intermediate_code_internal(TranslationBlock * tb, > } > } > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > if (spc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) > gen_opc_instr_start[lj++] = 0; > diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c > index c3cdafa..79bc431 100644 > --- a/target-unicore32/translate.c > +++ b/target-unicore32/translate.c > @@ -1999,7 +1999,7 @@ static inline void > gen_intermediate_code_internal(CPUUniCore32State *env, > } > } > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) { > @@ -2031,7 +2031,7 @@ static inline void > gen_intermediate_code_internal(CPUUniCore32State *env, > * Also stop translation when a page boundary is reached. This > * ensures prefetch aborts occur at the right place. */ > num_insns++; > - } while (!dc->is_jmp && gen_opc_ptr < gen_opc_end && > + } while (!dc->is_jmp && tcg_ctx.gen_opc_ptr < gen_opc_end && > !env->singlestep_enabled && > !singlestep && > dc->pc < next_page_start && > @@ -2103,7 +2103,7 @@ static inline void > gen_intermediate_code_internal(CPUUniCore32State *env, > > done_generating: > gen_icount_end(tb, num_insns); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > > #ifdef DEBUG_DISAS > if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) { > @@ -2114,7 +2114,7 @@ done_generating: > } > #endif > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > lj++; > while (lj <= j) { > gen_opc_instr_start[lj++] = 0; > diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c > index 82e8ccc..c7971bc 100644 > --- a/target-xtensa/translate.c > +++ b/target-xtensa/translate.c > @@ -2893,7 +2893,7 @@ static void gen_intermediate_code_internal( > check_breakpoint(env, &dc); > > if (search_pc) { > - j = gen_opc_ptr - gen_opc_buf; > + j = tcg_ctx.gen_opc_ptr - gen_opc_buf; > if (lj < j) { > lj++; > while (lj < j) { > @@ -2944,7 +2944,7 @@ static void gen_intermediate_code_internal( > } while (dc.is_jmp == DISAS_NEXT && > insn_count < max_insns && > dc.pc < next_page_start && > - gen_opc_ptr < gen_opc_end); > + tcg_ctx.gen_opc_ptr < gen_opc_end); > > reset_litbase(&dc); > reset_sar_tracker(&dc); > @@ -2960,7 +2960,7 @@ static void gen_intermediate_code_internal( > gen_jumpi(&dc, dc.pc, 0); > } > gen_icount_end(tb, insn_count); > - *gen_opc_ptr = INDEX_op_end; > + *tcg_ctx.gen_opc_ptr = INDEX_op_end; > > if (!search_pc) { > tb->size = dc.pc - pc_start; > diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h > index 8d1da2b..9bc890f 100644 > --- a/tcg/tcg-op.h > +++ b/tcg/tcg-op.h > @@ -27,58 +27,58 @@ int gen_new_label(void); > > static inline void tcg_gen_op0(TCGOpcode opc) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > } > > static inline void tcg_gen_op1_i32(TCGOpcode opc, TCGv_i32 arg1) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > } > > static inline void tcg_gen_op1_i64(TCGOpcode opc, TCGv_i64 arg1) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > } > > static inline void tcg_gen_op1i(TCGOpcode opc, TCGArg arg1) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = arg1; > } > > static inline void tcg_gen_op2_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > } > > static inline void tcg_gen_op2_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > } > > static inline void tcg_gen_op2i_i32(TCGOpcode opc, TCGv_i32 arg1, TCGArg > arg2) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = arg2; > } > > static inline void tcg_gen_op2i_i64(TCGOpcode opc, TCGv_i64 arg1, TCGArg > arg2) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = arg2; > } > > static inline void tcg_gen_op2ii(TCGOpcode opc, TCGArg arg1, TCGArg arg2) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = arg1; > *gen_opparam_ptr++ = arg2; > } > @@ -86,7 +86,7 @@ static inline void tcg_gen_op2ii(TCGOpcode opc, TCGArg > arg1, TCGArg arg2) > static inline void tcg_gen_op3_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2, > TCGv_i32 arg3) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -95,7 +95,7 @@ static inline void tcg_gen_op3_i32(TCGOpcode opc, TCGv_i32 > arg1, TCGv_i32 arg2, > static inline void tcg_gen_op3_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2, > TCGv_i64 arg3) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -104,7 +104,7 @@ static inline void tcg_gen_op3_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2, > static inline void tcg_gen_op3i_i32(TCGOpcode opc, TCGv_i32 arg1, > TCGv_i32 arg2, TCGArg arg3) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = arg3; > @@ -113,7 +113,7 @@ static inline void tcg_gen_op3i_i32(TCGOpcode opc, > TCGv_i32 arg1, > static inline void tcg_gen_op3i_i64(TCGOpcode opc, TCGv_i64 arg1, > TCGv_i64 arg2, TCGArg arg3) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = arg3; > @@ -122,7 +122,7 @@ static inline void tcg_gen_op3i_i64(TCGOpcode opc, > TCGv_i64 arg1, > static inline void tcg_gen_ldst_op_i32(TCGOpcode opc, TCGv_i32 val, > TCGv_ptr base, TCGArg offset) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(val); > *gen_opparam_ptr++ = GET_TCGV_PTR(base); > *gen_opparam_ptr++ = offset; > @@ -131,7 +131,7 @@ static inline void tcg_gen_ldst_op_i32(TCGOpcode opc, > TCGv_i32 val, > static inline void tcg_gen_ldst_op_i64(TCGOpcode opc, TCGv_i64 val, > TCGv_ptr base, TCGArg offset) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(val); > *gen_opparam_ptr++ = GET_TCGV_PTR(base); > *gen_opparam_ptr++ = offset; > @@ -140,7 +140,7 @@ static inline void tcg_gen_ldst_op_i64(TCGOpcode opc, > TCGv_i64 val, > static inline void tcg_gen_qemu_ldst_op_i64_i32(TCGOpcode opc, TCGv_i64 val, > TCGv_i32 addr, TCGArg > mem_index) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(val); > *gen_opparam_ptr++ = GET_TCGV_I32(addr); > *gen_opparam_ptr++ = mem_index; > @@ -149,7 +149,7 @@ static inline void tcg_gen_qemu_ldst_op_i64_i32(TCGOpcode > opc, TCGv_i64 val, > static inline void tcg_gen_qemu_ldst_op_i64_i64(TCGOpcode opc, TCGv_i64 val, > TCGv_i64 addr, TCGArg > mem_index) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(val); > *gen_opparam_ptr++ = GET_TCGV_I64(addr); > *gen_opparam_ptr++ = mem_index; > @@ -158,7 +158,7 @@ static inline void tcg_gen_qemu_ldst_op_i64_i64(TCGOpcode > opc, TCGv_i64 val, > static inline void tcg_gen_op4_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2, > TCGv_i32 arg3, TCGv_i32 arg4) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -168,7 +168,7 @@ static inline void tcg_gen_op4_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2, > static inline void tcg_gen_op4_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2, > TCGv_i64 arg3, TCGv_i64 arg4) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -178,7 +178,7 @@ static inline void tcg_gen_op4_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2, > static inline void tcg_gen_op4i_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2, > TCGv_i32 arg3, TCGArg arg4) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -188,7 +188,7 @@ static inline void tcg_gen_op4i_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2, > static inline void tcg_gen_op4i_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2, > TCGv_i64 arg3, TCGArg arg4) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -198,7 +198,7 @@ static inline void tcg_gen_op4i_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2, > static inline void tcg_gen_op4ii_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2, > TCGArg arg3, TCGArg arg4) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = arg3; > @@ -208,7 +208,7 @@ static inline void tcg_gen_op4ii_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2 > static inline void tcg_gen_op4ii_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2, > TCGArg arg3, TCGArg arg4) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = arg3; > @@ -218,7 +218,7 @@ static inline void tcg_gen_op4ii_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2 > static inline void tcg_gen_op5_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2, > TCGv_i32 arg3, TCGv_i32 arg4, TCGv_i32 > arg5) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -229,7 +229,7 @@ static inline void tcg_gen_op5_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2, > static inline void tcg_gen_op5_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2, > TCGv_i64 arg3, TCGv_i64 arg4, TCGv_i64 > arg5) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -240,7 +240,7 @@ static inline void tcg_gen_op5_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2, > static inline void tcg_gen_op5i_i32(TCGOpcode opc, TCGv_i32 arg1, TCGv_i32 > arg2, > TCGv_i32 arg3, TCGv_i32 arg4, TCGArg > arg5) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -251,7 +251,7 @@ static inline void tcg_gen_op5i_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2, > static inline void tcg_gen_op5i_i64(TCGOpcode opc, TCGv_i64 arg1, TCGv_i64 > arg2, > TCGv_i64 arg3, TCGv_i64 arg4, TCGArg > arg5) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -263,7 +263,7 @@ static inline void tcg_gen_op5ii_i32(TCGOpcode opc, > TCGv_i32 arg1, > TCGv_i32 arg2, TCGv_i32 arg3, > TCGArg arg4, TCGArg arg5) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -275,7 +275,7 @@ static inline void tcg_gen_op5ii_i64(TCGOpcode opc, > TCGv_i64 arg1, > TCGv_i64 arg2, TCGv_i64 arg3, > TCGArg arg4, TCGArg arg5) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -287,7 +287,7 @@ static inline void tcg_gen_op6_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2, > TCGv_i32 arg3, TCGv_i32 arg4, TCGv_i32 > arg5, > TCGv_i32 arg6) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -300,7 +300,7 @@ static inline void tcg_gen_op6_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2, > TCGv_i64 arg3, TCGv_i64 arg4, TCGv_i64 > arg5, > TCGv_i64 arg6) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -313,7 +313,7 @@ static inline void tcg_gen_op6i_i32(TCGOpcode opc, > TCGv_i32 arg1, TCGv_i32 arg2, > TCGv_i32 arg3, TCGv_i32 arg4, > TCGv_i32 arg5, TCGArg arg6) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -326,7 +326,7 @@ static inline void tcg_gen_op6i_i64(TCGOpcode opc, > TCGv_i64 arg1, TCGv_i64 arg2, > TCGv_i64 arg3, TCGv_i64 arg4, > TCGv_i64 arg5, TCGArg arg6) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > @@ -339,7 +339,7 @@ static inline void tcg_gen_op6ii_i32(TCGOpcode opc, > TCGv_i32 arg1, > TCGv_i32 arg2, TCGv_i32 arg3, > TCGv_i32 arg4, TCGArg arg5, TCGArg arg6) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I32(arg1); > *gen_opparam_ptr++ = GET_TCGV_I32(arg2); > *gen_opparam_ptr++ = GET_TCGV_I32(arg3); > @@ -352,7 +352,7 @@ static inline void tcg_gen_op6ii_i64(TCGOpcode opc, > TCGv_i64 arg1, > TCGv_i64 arg2, TCGv_i64 arg3, > TCGv_i64 arg4, TCGArg arg5, TCGArg arg6) > { > - *gen_opc_ptr++ = opc; > + *tcg_ctx.gen_opc_ptr++ = opc; > *gen_opparam_ptr++ = GET_TCGV_I64(arg1); > *gen_opparam_ptr++ = GET_TCGV_I64(arg2); > *gen_opparam_ptr++ = GET_TCGV_I64(arg3); > diff --git a/tcg/tcg.c b/tcg/tcg.c > index 42052db..9a41b58 100644 > --- a/tcg/tcg.c > +++ b/tcg/tcg.c > @@ -297,7 +297,7 @@ void tcg_func_start(TCGContext *s) > s->goto_tb_issue_mask = 0; > #endif > > - gen_opc_ptr = gen_opc_buf; > + s->gen_opc_ptr = gen_opc_buf; > gen_opparam_ptr = gen_opparam_buf; > > #if defined(CONFIG_QEMU_LDST_OPTIMIZATION) && defined(CONFIG_SOFTMMU) > @@ -641,7 +641,7 @@ void tcg_gen_callN(TCGContext *s, TCGv_ptr func, unsigned > int flags, > } > #endif /* TCG_TARGET_EXTEND_ARGS */ > > - *gen_opc_ptr++ = INDEX_op_call; > + *s->gen_opc_ptr++ = INDEX_op_call; > nparam = gen_opparam_ptr++; > if (ret != TCG_CALL_DUMMY_ARG) { > #if TCG_TARGET_REG_BITS < 64 > @@ -898,7 +898,7 @@ void tcg_dump_ops(TCGContext *s) > first_insn = 1; > opc_ptr = gen_opc_buf; > args = gen_opparam_buf; > - while (opc_ptr < gen_opc_ptr) { > + while (opc_ptr < s->gen_opc_ptr) { > c = *opc_ptr++; > def = &tcg_op_defs[c]; > if (c == INDEX_op_debug_insn_start) { > @@ -1229,9 +1229,9 @@ static void tcg_liveness_analysis(TCGContext *s) > uint16_t dead_args; > uint8_t sync_args; > > - gen_opc_ptr++; /* skip end */ > + s->gen_opc_ptr++; /* skip end */ > > - nb_ops = gen_opc_ptr - gen_opc_buf; > + nb_ops = s->gen_opc_ptr - gen_opc_buf; > > s->op_dead_args = tcg_malloc(nb_ops * sizeof(uint16_t)); > s->op_sync_args = tcg_malloc(nb_ops * sizeof(uint8_t)); > @@ -1448,7 +1448,7 @@ static void tcg_liveness_analysis(TCGContext *s) > static void tcg_liveness_analysis(TCGContext *s) > { > int nb_ops; > - nb_ops = gen_opc_ptr - gen_opc_buf; > + nb_ops = s->gen_opc_ptr - gen_opc_buf; > > s->op_dead_args = tcg_malloc(nb_ops * sizeof(uint16_t)); > memset(s->op_dead_args, 0, nb_ops * sizeof(uint16_t)); > @@ -2222,7 +2222,7 @@ static inline int tcg_gen_code_common(TCGContext *s, > uint8_t *gen_code_buf, > > #ifdef USE_TCG_OPTIMIZATIONS > gen_opparam_ptr = > - tcg_optimize(s, gen_opc_ptr, gen_opparam_buf, tcg_op_defs); > + tcg_optimize(s, s->gen_opc_ptr, gen_opparam_buf, tcg_op_defs); > #endif > > #ifdef CONFIG_PROFILER > @@ -2334,7 +2334,7 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) > #ifdef CONFIG_PROFILER > { > int n; > - n = (gen_opc_ptr - gen_opc_buf); > + n = (s->gen_opc_ptr - gen_opc_buf); > s->op_count += n; > if (n > s->op_count_max) > s->op_count_max = n; > -- > 1.7.9.5 >