Benjamin Herrenschmidt <[email protected]> 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