target/microblaze: Convert dec_imm to decodetree
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
081d8e02c3
commit
e64b2e5cfe
@ -79,6 +79,8 @@ cmpu 000101 ..... ..... ..... 000 0000 0011 @typea
|
||||
idiv 010010 ..... ..... ..... 000 0000 0000 @typea
|
||||
idivu 010010 ..... ..... ..... 000 0000 0010 @typea
|
||||
|
||||
imm 101100 00000 00000 imm:16
|
||||
|
||||
mul 010000 ..... ..... ..... 000 0000 0000 @typea
|
||||
mulh 010000 ..... ..... ..... 000 0000 0001 @typea
|
||||
mulhu 010000 ..... ..... ..... 000 0000 0011 @typea
|
||||
|
@ -477,6 +477,15 @@ static void gen_idivu(TCGv_i32 out, TCGv_i32 ina, TCGv_i32 inb)
|
||||
DO_TYPEA_CFG(idiv, use_div, true, gen_idiv)
|
||||
DO_TYPEA_CFG(idivu, use_div, true, gen_idivu)
|
||||
|
||||
static bool trans_imm(DisasContext *dc, arg_imm *arg)
|
||||
{
|
||||
dc->ext_imm = arg->imm << 16;
|
||||
tcg_gen_movi_i32(cpu_imm, dc->ext_imm);
|
||||
dc->tb_flags |= IMM_FLAG;
|
||||
dc->clear_imm = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
static void gen_mulh(TCGv_i32 out, TCGv_i32 ina, TCGv_i32 inb)
|
||||
{
|
||||
TCGv_i32 tmp = tcg_temp_new_i32();
|
||||
@ -848,14 +857,6 @@ static inline void sync_jmpstate(DisasContext *dc)
|
||||
}
|
||||
}
|
||||
|
||||
static void dec_imm(DisasContext *dc)
|
||||
{
|
||||
dc->ext_imm = dc->imm << 16;
|
||||
tcg_gen_movi_i32(cpu_imm, dc->ext_imm);
|
||||
dc->tb_flags |= IMM_FLAG;
|
||||
dc->clear_imm = 0;
|
||||
}
|
||||
|
||||
static inline void compute_ldst_addr(DisasContext *dc, bool ea, TCGv t)
|
||||
{
|
||||
/* Should be set to true if r1 is used by loadstores. */
|
||||
@ -1561,7 +1562,6 @@ static struct decoder_info {
|
||||
} decinfo[] = {
|
||||
{DEC_LD, dec_load},
|
||||
{DEC_ST, dec_store},
|
||||
{DEC_IMM, dec_imm},
|
||||
{DEC_BR, dec_br},
|
||||
{DEC_BCC, dec_bcc},
|
||||
{DEC_RTS, dec_rts},
|
||||
|
Loading…
Reference in New Issue
Block a user