'*gen_code_size_ptr' contains the size of the generated code (host
code).
*/
-int cpu_gen_code(TranslationBlock *tb,
+int cpu_gen_code(CPUState *env, TranslationBlock *tb,
int max_code_size, int *gen_code_size_ptr)
{
uint8_t *gen_code_buf;
int gen_code_size;
- if (gen_intermediate_code(tb) < 0)
+ if (gen_intermediate_code(env, tb) < 0)
return -1;
/* generate machine code */
unsigned long tc_ptr;
uint16_t *opc_ptr;
- if (gen_intermediate_code_pc(tb) < 0)
+ if (gen_intermediate_code_pc(env, tb) < 0)
return -1;
/* find opc index corresponding to search_pc */
#if defined(TARGET_I386)
{
int cc_op;
-
+#ifdef DEBUG_DISAS
+ if (loglevel) {
+ int i;
+ fprintf(logfile, "RESTORE:\n");
+ for(i=0;i<=j; i++) {
+ if (gen_opc_instr_start[i]) {
+ fprintf(logfile, "0x%04x: 0x%08x\n", i, gen_opc_pc[i]);
+ }
+ }
+ fprintf(logfile, "spc=0x%08lx j=0x%x eip=0x%lx cs_base=%lx\n",
+ searched_pc, j, gen_opc_pc[j] - tb->cs_base, tb->cs_base);
+ }
+#endif
env->eip = gen_opc_pc[j] - tb->cs_base;
cc_op = gen_opc_cc_op[j];
if (cc_op != CC_OP_DYNAMIC)