mirror of https://github.com/xemu-project/xemu.git
target-microblaze: Use table based condition-codes conversion
Use a table based conversion to map condition-codes between MicroBlaze ISA encoding and TCG. No functional change. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
This commit is contained in:
parent
75c9ddce5d
commit
d89b86e912
|
@ -1145,28 +1145,27 @@ static void dec_store(DisasContext *dc)
|
||||||
static inline void eval_cc(DisasContext *dc, unsigned int cc,
|
static inline void eval_cc(DisasContext *dc, unsigned int cc,
|
||||||
TCGv_i32 d, TCGv_i32 a, TCGv_i32 b)
|
TCGv_i32 d, TCGv_i32 a, TCGv_i32 b)
|
||||||
{
|
{
|
||||||
|
static const int mb_to_tcg_cc[] = {
|
||||||
|
[CC_EQ] = TCG_COND_EQ,
|
||||||
|
[CC_NE] = TCG_COND_NE,
|
||||||
|
[CC_LT] = TCG_COND_LT,
|
||||||
|
[CC_LE] = TCG_COND_LE,
|
||||||
|
[CC_GE] = TCG_COND_GE,
|
||||||
|
[CC_GT] = TCG_COND_GT,
|
||||||
|
};
|
||||||
|
|
||||||
switch (cc) {
|
switch (cc) {
|
||||||
case CC_EQ:
|
case CC_EQ:
|
||||||
tcg_gen_setcond_i32(TCG_COND_EQ, d, a, b);
|
case CC_NE:
|
||||||
break;
|
case CC_LT:
|
||||||
case CC_NE:
|
case CC_LE:
|
||||||
tcg_gen_setcond_i32(TCG_COND_NE, d, a, b);
|
case CC_GE:
|
||||||
break;
|
case CC_GT:
|
||||||
case CC_LT:
|
tcg_gen_setcond_i32(mb_to_tcg_cc[cc], d, a, b);
|
||||||
tcg_gen_setcond_i32(TCG_COND_LT, d, a, b);
|
break;
|
||||||
break;
|
default:
|
||||||
case CC_LE:
|
cpu_abort(CPU(dc->cpu), "Unknown condition code %x.\n", cc);
|
||||||
tcg_gen_setcond_i32(TCG_COND_LE, d, a, b);
|
break;
|
||||||
break;
|
|
||||||
case CC_GE:
|
|
||||||
tcg_gen_setcond_i32(TCG_COND_GE, d, a, b);
|
|
||||||
break;
|
|
||||||
case CC_GT:
|
|
||||||
tcg_gen_setcond_i32(TCG_COND_GT, d, a, b);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
cpu_abort(CPU(dc->cpu), "Unknown condition code %x.\n", cc);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue