TCGOp *tcg_op_insert_before(TCGContext *s, TCGOp *old_op,

                            TCGOpcode opc, int nargs)

{

    int oi = s->gen_next_op_idx;

    int prev = old_op->prev;

    int next = old_op - s->gen_op_buf;

    TCGOp *new_op;



    tcg_debug_assert(oi < OPC_BUF_SIZE);

    s->gen_next_op_idx = oi + 1;



    new_op = &s->gen_op_buf[oi];

    *new_op = (TCGOp){

        .opc = opc,

        .prev = prev,

        .next = next

    };

    s->gen_op_buf[prev].next = oi;

    old_op->prev = oi;



    return new_op;

}

TCGOp *tcg_op_insert_before(TCGContext *s, TCGOp *old_op,

                            TCGOpcode opc, int nargs)

{

    int oi = s->gen_next_op_idx;

    int prev = old_op->prev;

    int next = old_op - s->gen_op_buf;

    TCGOp *new_op;



    tcg_debug_assert(oi < OPC_BUF_SIZE);

    s->gen_next_op_idx = oi + 1;



    new_op = &s->gen_op_buf[oi];

    *new_op = (TCGOp){

        .opc = opc,

        .prev = prev,

        .next = next

    };

    s->gen_op_buf[prev].next = oi;

    old_op->prev = oi;



    return new_op;

}

    tcg_debug_assert(oi < OPC_BUF_SIZE); TCGOp *tcg_op_insert_before(TCGContext *s, TCGOp *old_op,                             TCGOpcode opc, int nargs)     int oi = s->gen_next_op_idx;     int prev = old_op->prev;     int next = old_op - s->gen_op_buf;     TCGOp *new_op;     tcg_debug_assert(oi < OPC_BUF_SIZE);     s->gen_next_op_idx = oi + 1;     new_op = &s->gen_op_buf[oi];     *new_op = (TCGOp){         .opc = opc,         .prev = prev,         .next = next     };     s->gen_op_buf[prev].next = oi;     old_op->prev = oi;     int oi = s->gen_next_op_idx;     TCGOp *new_op;     tcg_debug_assert(oi < OPC_BUF_SIZE);     s->gen_next_op_idx = oi + 1;     new_op = &s->gen_op_buf[oi];     *new_op = (TCGOp){         .opc = opc,         .prev = prev,         .next = next     };
TCGOp *FUNC_0(TCGContext *s, TCGOp *old_op,

                            TCGOpcode opc, int nargs)

{

    int VAR_0 = s->gen_next_op_idx;

    int VAR_1 = old_op->VAR_1;

    int VAR_2 = old_op - s->gen_op_buf;

    TCGOp *new_op;



    tcg_debug_assert(VAR_0 < OPC_BUF_SIZE);

    s->gen_next_op_idx = VAR_0 + 1;



    new_op = &s->gen_op_buf[VAR_0];

    *new_op = (TCGOp){

        .opc = opc,

        .VAR_1 = VAR_1,

        .VAR_2 = VAR_2

    };

    s->gen_op_buf[VAR_1].VAR_2 = VAR_0;

    old_op->VAR_1 = VAR_0;



    return new_op;

}

TCGOp *FUNC_0(TCGContext *s, TCGOp *old_op,
TCGOpcode opc, int nargs)
{ int VAR_0 = s->gen_next_op_idx; int VAR_1 = old_op->VAR_1; int VAR_2 = old_op - s->gen_op_buf; TCGOp *new_op; tcg_debug_assert(VAR_0 < OPC_BUF_SIZE); s->gen_next_op_idx = VAR_0 + 1; new_op = &s->gen_op_buf[VAR_0]; *new_op = (TCGOp){ .opc = opc,
.VAR_1 = VAR_1,
.VAR_2 = VAR_2
}; s->gen_op_buf[VAR_1].VAR_2 = VAR_0; old_op->VAR_1 = VAR_0; return new_op; }