int ioinst_handle_schm(CPUS390XState *env, uint64_t reg1, uint64_t reg2,

                       uint32_t ipb)

{

    uint8_t mbk;

    int update;

    int dct;



    trace_ioinst("schm");



    if (SCHM_REG1_RES(reg1)) {

        program_interrupt(env, PGM_OPERAND, 2);

        return -EIO;

    }



    mbk = SCHM_REG1_MBK(reg1);

    update = SCHM_REG1_UPD(reg1);

    dct = SCHM_REG1_DCT(reg1);



    if (update && (reg2 & 0x0000000000000fff)) {

        program_interrupt(env, PGM_OPERAND, 2);

        return -EIO;

    }



    css_do_schm(mbk, update, dct, update ? reg2 : 0);



    return 0;

}

int ioinst_handle_schm(CPUS390XState *env, uint64_t reg1, uint64_t reg2,

                       uint32_t ipb)

{

    uint8_t mbk;

    int update;

    int dct;



    trace_ioinst("schm");



    if (SCHM_REG1_RES(reg1)) {

        program_interrupt(env, PGM_OPERAND, 2);

        return -EIO;

    }



    mbk = SCHM_REG1_MBK(reg1);

    update = SCHM_REG1_UPD(reg1);

    dct = SCHM_REG1_DCT(reg1);



    if (update && (reg2 & 0x0000000000000fff)) {

        program_interrupt(env, PGM_OPERAND, 2);

        return -EIO;

    }



    css_do_schm(mbk, update, dct, update ? reg2 : 0);



    return 0;

}

int FUNC_0(CPUS390XState *VAR_0, uint64_t VAR_1, uint64_t VAR_2,

                       uint32_t VAR_3)

{

    uint8_t mbk;

    int VAR_4;

    int VAR_5;



    trace_ioinst("schm");



    if (SCHM_REG1_RES(VAR_1)) {

        program_interrupt(VAR_0, PGM_OPERAND, 2);

        return -EIO;

    }



    mbk = SCHM_REG1_MBK(VAR_1);

    VAR_4 = SCHM_REG1_UPD(VAR_1);

    VAR_5 = SCHM_REG1_DCT(VAR_1);



    if (VAR_4 && (VAR_2 & 0x0000000000000fff)) {

        program_interrupt(VAR_0, PGM_OPERAND, 2);

        return -EIO;

    }



    css_do_schm(mbk, VAR_4, VAR_5, VAR_4 ? VAR_2 : 0);



    return 0;

}

int FUNC_0(CPUS390XState *VAR_0, uint64_t VAR_1, uint64_t VAR_2,
uint32_t VAR_3)
{ uint8_t mbk; int VAR_4; int VAR_5; trace_ioinst("schm"); if (SCHM_REG1_RES(VAR_1)) { program_interrupt(VAR_0, PGM_OPERAND, 2); return -EIO; } mbk = SCHM_REG1_MBK(VAR_1); VAR_4 = SCHM_REG1_UPD(VAR_1); VAR_5 = SCHM_REG1_DCT(VAR_1); if (VAR_4 && (VAR_2 & 0x0000000000000fff)) { program_interrupt(VAR_0, PGM_OPERAND, 2); return -EIO; } css_do_schm(mbk, VAR_4, VAR_5, VAR_4 ? VAR_2 : 0); return 0; }