Revision 2e70f6ef translate-all.c
b/translate-all.c | ||
---|---|---|
38 | 38 |
TCGArg gen_opparam_buf[OPPARAM_BUF_SIZE]; |
39 | 39 |
|
40 | 40 |
target_ulong gen_opc_pc[OPC_BUF_SIZE]; |
41 |
uint16_t gen_opc_icount[OPC_BUF_SIZE]; |
|
41 | 42 |
uint8_t gen_opc_instr_start[OPC_BUF_SIZE]; |
42 | 43 |
#if defined(TARGET_I386) |
43 | 44 |
uint8_t gen_opc_cc_op[OPC_BUF_SIZE]; |
... | ... | |
158 | 159 |
if (gen_intermediate_code_pc(env, tb) < 0) |
159 | 160 |
return -1; |
160 | 161 |
|
162 |
if (use_icount) { |
|
163 |
/* Reset the cycle counter to the start of the block. */ |
|
164 |
env->icount_decr.u16.low += tb->icount; |
|
165 |
/* Clear the IO flag. */ |
|
166 |
env->can_do_io = 0; |
|
167 |
} |
|
168 |
|
|
161 | 169 |
/* find opc index corresponding to search_pc */ |
162 | 170 |
tc_ptr = (unsigned long)tb->tc_ptr; |
163 | 171 |
if (searched_pc < tc_ptr) |
... | ... | |
177 | 185 |
/* now find start of instruction before */ |
178 | 186 |
while (gen_opc_instr_start[j] == 0) |
179 | 187 |
j--; |
188 |
env->icount_decr.u16.low -= gen_opc_icount[j]; |
|
180 | 189 |
|
181 | 190 |
gen_pc_load(env, tb, searched_pc, j, puc); |
182 | 191 |
|
Also available in: Unified diff