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~