On 12/17/2013 07:12 AM, Peter Maydell wrote: > +static void disas_cc(DisasContext *s, uint32_t insn) > { > + unsigned int sf, op, y, cond, rn, nzcv, is_imm; > + int label_continue; > + TCGv_i64 tcg_tmp, tcg_y, tcg_rn;
Don't you get a may be used uninitialized warning for label_continue? > + tcg_tmp = tcg_temp_new_i64(); > + > + if (cond < 0x0e) { /* not always */ > + int label_match = gen_new_label(); > + label_continue = gen_new_label(); > + arm_gen_test_cc(cond, label_match); > + /* nomatch: */ > + tcg_gen_movi_i64(tcg_tmp, nzcv << 28); > + gen_set_nzcv(tcg_tmp); > + tcg_gen_br(label_continue); > + gen_set_label(label_match); > + } You can't re-use tcg_tmp across basic blocks like this. r~