Lines Matching refs:eax

36 		        u32 eax, ebx, ecx, edx, offset;  in xstate_required_size()  local
37 cpuid_count(0xD, feature_bit, &eax, &ebx, &ecx, &edx); in xstate_required_size()
39 ret = max(ret, offset + eax); in xstate_required_size()
90 (best->eax | ((u64)best->edx << 32)) & in kvm_update_cpuid()
97 if (best && (best->eax & (F(XSAVES) | F(XSAVEC)))) in kvm_update_cpuid()
107 if (best && ((best->eax & 0xff00) >> 8) != 48 && in kvm_update_cpuid()
108 ((best->eax & 0xff00) >> 8) != 0) in kvm_update_cpuid()
150 if (!best || best->eax < 0x80000008) in cpuid_query_maxphyaddr()
154 return best->eax & 0xff; in cpuid_query_maxphyaddr()
181 vcpu->arch.cpuid_entries[i].eax = cpuid_entries[i].eax; in kvm_vcpu_ioctl_set_cpuid()
255 &entry->eax, &entry->ebx, &entry->ecx, &entry->edx); in do_cpuid_1_ent()
264 entry->eax = 1; /* only one leaf currently */ in __do_cpuid_ent_emulated()
368 entry->eax = min(entry->eax, (u32)0xd); in __do_cpuid_ent()
384 int t, times = entry->eax & 0xff; in __do_cpuid_ent()
408 cache_type = entry[i - 1].eax & 0x1f; in __do_cpuid_ent()
428 entry->eax = 0; in __do_cpuid_ent()
437 union cpuid10_eax eax; in __do_cpuid_ent() local
449 eax.split.version_id = min(cap.version, 2); in __do_cpuid_ent()
450 eax.split.num_counters = cap.num_counters_gp; in __do_cpuid_ent()
451 eax.split.bit_width = cap.bit_width_gp; in __do_cpuid_ent()
452 eax.split.mask_length = cap.events_mask_len; in __do_cpuid_ent()
458 entry->eax = eax.full; in __do_cpuid_ent()
488 entry->eax &= supported; in __do_cpuid_ent()
503 entry[i].eax &= kvm_supported_word10_x86_features; in __do_cpuid_ent()
505 if (entry[i].eax & (F(XSAVES)|F(XSAVEC))) in __do_cpuid_ent()
510 if (entry[i].eax == 0 || !(supported & mask)) in __do_cpuid_ent()
527 entry->eax = KVM_CPUID_FEATURES; in __do_cpuid_ent()
534 entry->eax = (1 << KVM_FEATURE_CLOCKSOURCE) | in __do_cpuid_ent()
543 entry->eax |= (1 << KVM_FEATURE_STEAL_TIME); in __do_cpuid_ent()
550 entry->eax = min(entry->eax, 0x8000001a); in __do_cpuid_ent()
563 entry->eax = entry->ebx = entry->ecx = 0; in __do_cpuid_ent()
566 unsigned g_phys_as = (entry->eax >> 16) & 0xff; in __do_cpuid_ent()
567 unsigned virt_as = max((entry->eax >> 8) & 0xff, 48U); in __do_cpuid_ent()
568 unsigned phys_as = entry->eax & 0xff; in __do_cpuid_ent()
572 entry->eax = g_phys_as | (virt_as << 8); in __do_cpuid_ent()
586 entry->eax = min(entry->eax, 0xC0000004); in __do_cpuid_ent()
599 entry->eax = entry->ebx = entry->ecx = entry->edx = 0; in __do_cpuid_ent()
707 limit = cpuid_entries[nent - 1].eax; in kvm_dev_ioctl_get_cpuid()
793 if (!maxlevel || maxlevel->eax >= function) in check_cpuid_limit()
800 return kvm_find_cpuid_entry(vcpu, maxlevel->eax, index); in check_cpuid_limit()
803 void kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) in kvm_cpuid() argument
805 u32 function = *eax, index = *ecx; in kvm_cpuid()
820 *eax = best->eax; in kvm_cpuid()
825 *eax = *ebx = *ecx = *edx = 0; in kvm_cpuid()
826 trace_kvm_cpuid(function, *eax, *ebx, *ecx, *edx); in kvm_cpuid()
832 u32 function, eax, ebx, ecx, edx; in kvm_emulate_cpuid() local
834 function = eax = kvm_register_read(vcpu, VCPU_REGS_RAX); in kvm_emulate_cpuid()
836 kvm_cpuid(vcpu, &eax, &ebx, &ecx, &edx); in kvm_emulate_cpuid()
837 kvm_register_write(vcpu, VCPU_REGS_RAX, eax); in kvm_emulate_cpuid()