static void tcg_out_logicali(TCGContext *s, AArch64Insn insn, TCGType ext,

                             TCGReg rd, TCGReg rn, uint64_t limm)

{

    unsigned h, l, r, c;



    assert(is_limm(limm));



    h = clz64(limm);

    l = ctz64(limm);

    if (l == 0) {

        r = 0;                  /* form 0....01....1 */

        c = ctz64(~limm) - 1;

        if (h == 0) {

            r = clz64(~limm);   /* form 1..10..01..1 */

            c += r;

        }

    } else {

        r = 64 - l;             /* form 1....10....0 or 0..01..10..0 */

        c = r - h - 1;

    }

    if (ext == TCG_TYPE_I32) {

        r &= 31;

        c &= 31;

    }



    tcg_out_insn_3404(s, insn, ext, rd, rn, ext, r, c);

}

static void tcg_out_logicali(TCGContext *s, AArch64Insn insn, TCGType ext,

                             TCGReg rd, TCGReg rn, uint64_t limm)

{

    unsigned h, l, r, c;



    assert(is_limm(limm));



    h = clz64(limm);

    l = ctz64(limm);

    if (l == 0) {

        r = 0;                  

        c = ctz64(~limm) - 1;

        if (h == 0) {

            r = clz64(~limm);   

            c += r;

        }

    } else {

        r = 64 - l;             

        c = r - h - 1;

    }

    if (ext == TCG_TYPE_I32) {

        r &= 31;

        c &= 31;

    }



    tcg_out_insn_3404(s, insn, ext, rd, rn, ext, r, c);

}

static void FUNC_0(TCGContext *VAR_0, AArch64Insn VAR_1, TCGType VAR_2,

                             TCGReg VAR_3, TCGReg VAR_4, uint64_t VAR_5)

{

    unsigned VAR_6, VAR_7, VAR_8, VAR_9;



    assert(is_limm(VAR_5));



    VAR_6 = clz64(VAR_5);

    VAR_7 = ctz64(VAR_5);

    if (VAR_7 == 0) {

        VAR_8 = 0;                  

        VAR_9 = ctz64(~VAR_5) - 1;

        if (VAR_6 == 0) {

            VAR_8 = clz64(~VAR_5);   

            VAR_9 += VAR_8;

        }

    } else {

        VAR_8 = 64 - VAR_7;             

        VAR_9 = VAR_8 - VAR_6 - 1;

    }

    if (VAR_2 == TCG_TYPE_I32) {

        VAR_8 &= 31;

        VAR_9 &= 31;

    }



    tcg_out_insn_3404(VAR_0, VAR_1, VAR_2, VAR_3, VAR_4, VAR_2, VAR_8, VAR_9);

}

static void FUNC_0(TCGContext *VAR_0, AArch64Insn VAR_1, TCGType VAR_2,
TCGReg VAR_3, TCGReg VAR_4, uint64_t VAR_5)
{ unsigned VAR_6, VAR_7, VAR_8, VAR_9; assert(is_limm(VAR_5)); VAR_6 = clz64(VAR_5); VAR_7 = ctz64(VAR_5); if (VAR_7 == 0) { VAR_8 = 0; VAR_9 = ctz64(~VAR_5) - 1; if (VAR_6 == 0) { VAR_8 = clz64(~VAR_5); VAR_9 += VAR_8; } } else { VAR_8 = 64 - VAR_7; VAR_9 = VAR_8 - VAR_6 - 1; } if (VAR_2 == TCG_TYPE_I32) { VAR_8 &= 31; VAR_9 &= 31; } tcg_out_insn_3404(VAR_0, VAR_1, VAR_2, VAR_3, VAR_4, VAR_2, VAR_8, VAR_9); }