target/loongarch: Disassemble jirl properly
While jirl shares the same instruction format as bne etc, it is not assembled the same. In particular, rd is printed first not second and the immediate is not pc-relative. Decode into the arg_rr_i structure, which prints correctly. This changes the "offs" member to "imm", to update translate. Reviewed-by: WANG Xuerui <git@xen0n.name> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
2e0d91513d
commit
c2b618a8c1
@ -628,7 +628,7 @@ INSN(beqz, r_offs)
|
||||
INSN(bnez, r_offs)
|
||||
INSN(bceqz, c_offs)
|
||||
INSN(bcnez, c_offs)
|
||||
INSN(jirl, rr_offs)
|
||||
INSN(jirl, rr_i)
|
||||
INSN(b, offs)
|
||||
INSN(bl, offs)
|
||||
INSN(beq, rr_offs)
|
||||
|
@ -23,7 +23,7 @@ static bool trans_jirl(DisasContext *ctx, arg_jirl *a)
|
||||
TCGv dest = gpr_dst(ctx, a->rd, EXT_NONE);
|
||||
TCGv src1 = gpr_src(ctx, a->rj, EXT_NONE);
|
||||
|
||||
tcg_gen_addi_tl(cpu_pc, src1, a->offs);
|
||||
tcg_gen_addi_tl(cpu_pc, src1, a->imm);
|
||||
tcg_gen_movi_tl(dest, ctx->base.pc_next + 4);
|
||||
gen_set_gpr(a->rd, dest, EXT_NONE);
|
||||
tcg_gen_lookup_and_goto_ptr();
|
||||
|
@ -67,6 +67,7 @@
|
||||
@rr_ui12 .... ...... imm:12 rj:5 rd:5 &rr_i
|
||||
@rr_i14s2 .... .... .............. rj:5 rd:5 &rr_i imm=%i14s2
|
||||
@rr_i16 .... .. imm:s16 rj:5 rd:5 &rr_i
|
||||
@rr_i16s2 .... .. ................ rj:5 rd:5 &rr_i imm=%offs16
|
||||
@hint_r_i12 .... ...... imm:s12 rj:5 hint:5 &hint_r_i
|
||||
@rrr_sa2p1 .... ........ ... .. rk:5 rj:5 rd:5 &rrr_sa sa=%sa2p1
|
||||
@rrr_sa2 .... ........ ... sa:2 rk:5 rj:5 rd:5 &rrr_sa
|
||||
@ -444,7 +445,7 @@ beqz 0100 00 ................ ..... ..... @r_offs21
|
||||
bnez 0100 01 ................ ..... ..... @r_offs21
|
||||
bceqz 0100 10 ................ 00 ... ..... @c_offs21
|
||||
bcnez 0100 10 ................ 01 ... ..... @c_offs21
|
||||
jirl 0100 11 ................ ..... ..... @rr_offs16
|
||||
jirl 0100 11 ................ ..... ..... @rr_i16s2
|
||||
b 0101 00 .......................... @offs26
|
||||
bl 0101 01 .......................... @offs26
|
||||
beq 0101 10 ................ ..... ..... @rr_offs16
|
||||
|
Loading…
Reference in New Issue
Block a user