static int handle_instruction(CPUState *env, struct kvm_run *run)

{

    unsigned int ipa0 = (run->s390_sieic.ipa & 0xff00);

    uint8_t ipa1 = run->s390_sieic.ipa & 0x00ff;

    int ipb_code = (run->s390_sieic.ipb & 0x0fff0000) >> 16;

    int r = -1;



    dprintf("handle_instruction 0x%x 0x%x\n", run->s390_sieic.ipa, run->s390_sieic.ipb);

    switch (ipa0) {

        case IPA0_PRIV:

            r = handle_priv(env, run, ipa1);

            break;

        case IPA0_DIAG:

            r = handle_diag(env, run, ipb_code);

            break;

        case IPA0_SIGP:

            r = handle_sigp(env, run, ipa1);

            break;

    }



    if (r < 0) {

        enter_pgmcheck(env, 0x0001);

    }

    return r;

}

static int handle_instruction(CPUState *env, struct kvm_run *run)

{

    unsigned int ipa0 = (run->s390_sieic.ipa & 0xff00);

    uint8_t ipa1 = run->s390_sieic.ipa & 0x00ff;

    int ipb_code = (run->s390_sieic.ipb & 0x0fff0000) >> 16;

    int r = -1;



    dprintf("handle_instruction 0x%x 0x%x\n", run->s390_sieic.ipa, run->s390_sieic.ipb);

    switch (ipa0) {

        case IPA0_PRIV:

            r = handle_priv(env, run, ipa1);

            break;

        case IPA0_DIAG:

            r = handle_diag(env, run, ipb_code);

            break;

        case IPA0_SIGP:

            r = handle_sigp(env, run, ipa1);

            break;

    }



    if (r < 0) {

        enter_pgmcheck(env, 0x0001);

    }

    return r;

}

    return r;
static int FUNC_0(CPUState *VAR_0, struct kvm_run *VAR_1)

{

    unsigned int VAR_2 = (VAR_1->s390_sieic.ipa & 0xff00);

    uint8_t ipa1 = VAR_1->s390_sieic.ipa & 0x00ff;

    int VAR_3 = (VAR_1->s390_sieic.ipb & 0x0fff0000) >> 16;

    int VAR_4 = -1;



    dprintf("FUNC_0 0x%x 0x%x\n", VAR_1->s390_sieic.ipa, VAR_1->s390_sieic.ipb);

    switch (VAR_2) {

        case IPA0_PRIV:

            VAR_4 = handle_priv(VAR_0, VAR_1, ipa1);

            break;

        case IPA0_DIAG:

            VAR_4 = handle_diag(VAR_0, VAR_1, VAR_3);

            break;

        case IPA0_SIGP:

            VAR_4 = handle_sigp(VAR_0, VAR_1, ipa1);

            break;

    }



    if (VAR_4 < 0) {

        enter_pgmcheck(VAR_0, 0x0001);

    }

    return VAR_4;

}

static int FUNC_0(CPUState *VAR_0, struct kvm_run *VAR_1)
{ unsigned int VAR_2 = (VAR_1->s390_sieic.ipa & 0xff00); uint8_t ipa1 = VAR_1->s390_sieic.ipa & 0x00ff; int VAR_3 = (VAR_1->s390_sieic.ipb & 0x0fff0000) >> 16; int VAR_4 = -1; dprintf("FUNC_0 0x%x 0x%x\n", VAR_1->s390_sieic.ipa, VAR_1->s390_sieic.ipb); switch (VAR_2) { case IPA0_PRIV:
VAR_4 = handle_priv(VAR_0, VAR_1, ipa1); break; case IPA0_DIAG:
VAR_4 = handle_diag(VAR_0, VAR_1, VAR_3); break; case IPA0_SIGP:
VAR_4 = handle_sigp(VAR_0, VAR_1, ipa1); break; } if (VAR_4 < 0) { enter_pgmcheck(VAR_0, 0x0001); } return VAR_4; }