On 12/18/2013 12:49 PM, Tom Musta wrote: > + env->crf[bf] = 0x8 | (fg_flag ? 4 : 0) | (fe_flag ? 2 : 0); > +}
You should return that value instead of assigning it. Then you need neither the env nor bf arguments, and the whole function can be TCG_CALL_NO_RWG_SE. > +static void gen_ftdiv(DisasContext *ctx) > +{ > + TCGv_i32 bf; > + if (unlikely(!ctx->fpu_enabled)) { > + gen_exception(ctx, POWERPC_EXCP_FPU); > + return; > + } > + /* NIP cannot be restored if the memory exception comes from an helper */ > + gen_update_nip(ctx, ctx->nip - 4); > + bf = tcg_const_i32(crfD(ctx->opcode)); > + gen_helper_ftdiv(cpu_env, bf, cpu_fpr[rA(ctx->opcode)], > + cpu_fpr[rB(ctx->opcode)]); > +} What memory exception? Assign the result to cpu_crf[bf] here. r~