> static DisasJumpType help_goto_direct(DisasContext *s, uint64_t dest) > { > if (dest == s->pc_tmp) { > @@ -4113,9 +4099,15 @@ static DisasJumpType op_soc(DisasContext *s, DisasOps > *o) > > static DisasJumpType op_sla(DisasContext *s, DisasOps *o) > { > + TCGv_i64 t; > uint64_t sign = 1ull << s->insn->data; > - enum cc_op cco = s->insn->data == 31 ? CC_OP_SLA_32 : CC_OP_SLA_64; > - gen_op_update2_cc_i64(s, cco, o->in1, o->in2); > + if (s->insn->data == 31) { > + t = tcg_temp_new_i64(); > + tcg_gen_shli_i64(t, o->in1, 32); > + } else { > + t = o->in1; > + }
Are you missing to free the temp in case you allocated one? -- Thanks, David / dhildenb