Hi Richard,

On 4/20/24 21:21, Richard Henderson wrote:
On 4/19/24 02:25, Chinmay Rath wrote:
Hi Richard,

On 4/17/24 00:06, Richard Henderson wrote:
On 4/15/24 23:39, Chinmay Rath wrote:
+static bool trans_MADDHDU(DisasContext *ctx, arg_MADDHDU *a)
...
+    tcg_gen_movi_i64(t1, 0);

Drop the movi.

+    tcg_gen_add2_i64(t1, cpu_gpr[a->vrt], lo, hi, cpu_gpr[a->rc], t1);

Use tcg_constant_i64(0).

Looks like tcg_gen_add2_i64 internally modifies the passed arguments, hence constant is not expected. However, I tried using tcg_constant_i64(0) as suggested but this leads to an assert failure : qemu-system-ppc64: ../tcg/tcg.c:5071: tcg_reg_alloc_op: Assertion `!temp_readonly(ts)' failed.

You misunderstood my suggestion.

  TCGv_i64 t1 = tcg_temp_new_i64();
  tcg_gen_add2_i64(t1, cpu_gpr[vrt], lo, hi, cpu_gpr[a->rc], tcg_constantant_i64(0));

Thank you for the clarification. Will add this to v2.
Regards,
Chinmay

r~



Reply via email to