|
| From: | Richard Henderson |
| Subject: | Re: [PATCH v4 05/21] target/loongarch: Add fixed point shift instruction translation |
| Date: | Sat, 4 Sep 2021 13:17:33 +0200 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 |
On 9/2/21 2:40 PM, Song Gao wrote:
+static bool gen_r2_ui6(DisasContext *ctx, arg_slli_d *a,
+ void(*func)(TCGv, TCGv, TCGv))
+{
+ TCGv dest = gpr_dst(ctx, a->rd);
+ TCGv src1 = gpr_src(ctx, a->rj, EXT_NONE);
+ TCGv src2 = tcg_constant_tl(a->ui6);
+
+ TCGv t0 = temp_new(ctx);
+
+ tcg_gen_andi_tl(t0, src2, 0x7f);
0x3f.That said, these shouldn't require masking, because they've just come from the decoder as 5 and 6-bit operands.
You should prefer to use the tcg_gen_* functions that take integers:
void (*func)(TCGv, TCGv, target_long)
passing tcg_gen_shli_tl, etc. It will make all of these simpler.
r~
| [Prev in Thread] | Current Thread | [Next in Thread] |