static int kvm_get_xcrs(X86CPU *cpu)

{

    CPUX86State *env = &cpu->env;

    int i, ret;

    struct kvm_xcrs xcrs;



    if (!kvm_has_xcrs()) {

        return 0;

    }



    ret = kvm_vcpu_ioctl(CPU(cpu), KVM_GET_XCRS, &xcrs);

    if (ret < 0) {

        return ret;

    }



    for (i = 0; i < xcrs.nr_xcrs; i++) {

        /* Only support xcr0 now */

        if (xcrs.xcrs[i].xcr == 0) {

            env->xcr0 = xcrs.xcrs[i].value;

            break;

        }

    }

    return 0;

}

static int kvm_get_xcrs(X86CPU *cpu)

{

    CPUX86State *env = &cpu->env;

    int i, ret;

    struct kvm_xcrs xcrs;



    if (!kvm_has_xcrs()) {

        return 0;

    }



    ret = kvm_vcpu_ioctl(CPU(cpu), KVM_GET_XCRS, &xcrs);

    if (ret < 0) {

        return ret;

    }



    for (i = 0; i < xcrs.nr_xcrs; i++) {

        

        if (xcrs.xcrs[i].xcr == 0) {

            env->xcr0 = xcrs.xcrs[i].value;

            break;

        }

    }

    return 0;

}

static int FUNC_0(X86CPU *VAR_0)

{

    CPUX86State *env = &VAR_0->env;

    int VAR_1, VAR_2;

    struct kvm_xcrs VAR_3;



    if (!kvm_has_xcrs()) {

        return 0;

    }



    VAR_2 = kvm_vcpu_ioctl(CPU(VAR_0), KVM_GET_XCRS, &VAR_3);

    if (VAR_2 < 0) {

        return VAR_2;

    }



    for (VAR_1 = 0; VAR_1 < VAR_3.nr_xcrs; VAR_1++) {

        

        if (VAR_3.VAR_3[VAR_1].xcr == 0) {

            env->xcr0 = VAR_3.VAR_3[VAR_1].value;

            break;

        }

    }

    return 0;

}

static int FUNC_0(X86CPU *VAR_0)
{ CPUX86State *env = &VAR_0->env; int VAR_1, VAR_2; struct kvm_xcrs VAR_3; if (!kvm_has_xcrs()) { return 0; } VAR_2 = kvm_vcpu_ioctl(CPU(VAR_0), KVM_GET_XCRS, &VAR_3); if (VAR_2 < 0) { return VAR_2; } for (VAR_1 = 0; VAR_1 < VAR_3.nr_xcrs; VAR_1++) { if (VAR_3.VAR_3[VAR_1].xcr == 0) { env->xcr0 = VAR_3.VAR_3[VAR_1].value; break; } } return 0; }