Commit d89b86e9 authored by Edgar E. Iglesias's avatar Edgar E. Iglesias
Browse files

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: default avatarRichard Henderson <richard.henderson@linaro.org>
Signed-off-by: default avatarEdgar E. Iglesias <edgar.iglesias@xilinx.com>
parent 75c9ddce
Loading
Loading
Loading
Loading
+20 −21
Original line number Diff line number Diff line
@@ -1145,24 +1145,23 @@ static void dec_store(DisasContext *dc)
static inline void eval_cc(DisasContext *dc, unsigned int cc,
                           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) {
    case CC_EQ:
            tcg_gen_setcond_i32(TCG_COND_EQ, d, a, b);
            break;
    case CC_NE:
            tcg_gen_setcond_i32(TCG_COND_NE, d, a, b);
            break;
    case CC_LT:
            tcg_gen_setcond_i32(TCG_COND_LT, d, a, b);
            break;
    case CC_LE:
            tcg_gen_setcond_i32(TCG_COND_LE, d, a, b);
            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);
        tcg_gen_setcond_i32(mb_to_tcg_cc[cc], d, a, b);
        break;
    default:
        cpu_abort(CPU(dc->cpu), "Unknown condition code %x.\n", cc);