Benjamin Herrenschmidt <b...@kernel.crashing.org> writes:

> Hi Richard !
>
> So in my discovery of TCG, one thing I noticed is the horrendous amount
> of code generated for branches, especially conditional ones.
>

static inline void gen_bcond(DisasContext *ctx, int type)
{
[...]
    if ((bo & 0x4) == 0) {
        /* Decrement and test CTR */
        [...]
        if (bo & 0x2) {
            tcg_gen_brcondi_tl(TCG_COND_NE, temp, 0, l1);
        } else {
            tcg_gen_brcondi_tl(TCG_COND_EQ, temp, 0, l1);
        }

BUG, both jumping to same label?

Can we replace it unconditionally with

tcg_gen_br(l1) ?

Regards
Nikunj


Reply via email to