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));
r~