On 04/26/2017 08:23 AM, Emilio G. Cota wrote:
+gen_eob_worker(DisasContext *s, bool inhibit, bool recheck_tf, TCGv jr)
{
gen_update_cc_op(s);
@@ -2530,6 +2532,13 @@ static void gen_eob_worker(DisasContext *s, bool inhibit, bool recheck_tf)
tcg_gen_exit_tb(0);
} else if (s->tf) {
gen_helper_single_step(cpu_env);
+ } else if (jr) {
...
- gen_eob_worker(s, false, true);
+ gen_eob_worker(s, false, true, NULL);
You cannot use NULL. While we abuse a pointer type for TCGv, that's because C
doesn't have type verification for different integral types.
You need to use
TCGv unused;
TCGV_UNUSED(unused);
and
if (TCGV_IS_UNUSED(foo))
(As it happens, I do have a branch that tries to clean this up, so that this
kind of thing is less unwieldy. Perhaps I'll get to it this cycle...)
+ tcg_gen_ld_tl(vaddr, cpu_env, offsetof(CPUX86State, segs[R_CS].base));
+ tcg_gen_add_tl(vaddr, vaddr, jr);
tcg_gen_add_tl(vaddr, jr, cpu_seg_base[R_CS]);
r~