Revision facc68be cpu-exec.c
b/cpu-exec.c | ||
---|---|---|
268 | 268 |
tb->tc_ptr = tc_ptr; |
269 | 269 |
tb->cs_base = (unsigned long)cs_base; |
270 | 270 |
tb->flags = flags; |
271 |
ret = cpu_gen_code(env, tb, CODE_GEN_MAX_SIZE, &code_gen_size); |
|
272 |
#if defined(TARGET_I386) |
|
273 |
/* XXX: suppress that, this is incorrect */ |
|
274 |
/* if invalid instruction, signal it */ |
|
275 |
if (ret != 0) { |
|
276 |
/* NOTE: the tb is allocated but not linked, so we |
|
277 |
can leave it */ |
|
278 |
spin_unlock(&tb_lock); |
|
279 |
raise_exception(EXCP06_ILLOP); |
|
280 |
} |
|
281 |
#endif |
|
271 |
cpu_gen_code(env, tb, CODE_GEN_MAX_SIZE, &code_gen_size); |
|
282 | 272 |
*ptb = tb; |
283 | 273 |
tb->hash_next = NULL; |
284 | 274 |
tb_link(tb); |
... | ... | |
295 | 285 |
#ifdef __sparc__ |
296 | 286 |
T0 = tmp_T0; |
297 | 287 |
#endif |
298 |
/* see if we can patch the calling TB. XXX: remove TF test */ |
|
299 |
if (T0 != 0 |
|
300 |
#if defined(TARGET_I386) |
|
301 |
&& !(env->eflags & TF_MASK) |
|
302 |
#endif |
|
303 |
) { |
|
288 |
/* see if we can patch the calling TB. */ |
|
289 |
if (T0 != 0) { |
|
304 | 290 |
spin_lock(&tb_lock); |
305 | 291 |
tb_add_jump((TranslationBlock *)(T0 & ~3), T0 & 3, tb); |
306 | 292 |
spin_unlock(&tb_lock); |
Also available in: Unified diff