On 19.09.2012, at 02:14, Richard Henderson wrote: > On 09/18/2012 01:18 PM, Alexander Graf wrote: >>> - /* remember what pgm exeption this was */ >>> + /* Remember what pgm exeption this was. */ >>> tmp = tcg_const_i32(code); >>> tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_code)); >>> tcg_temp_free_i32(tmp); >>> - tmp = tcg_const_i32(ilc); >>> + tmp = tcg_const_i32(s->next_pc - s->pc); >> >> Mind to explain this one? > > ILC = the size of the insn. Rather than passing ILC around into > gen_program_exception, get it back from the s->next_pc value that > we stored into DisasContext.
Ah, makes sense. Maybe create a small helper that makes it more obvious: static int current_ilc(DisasContext *s) { /* Next pc - current pc = current instruction length. */ return s->next_pc - s->pc; } Alex