qemu-e2k/target-i386
Eduardo Habkost 5e891bf8fd target-i386: Use #defines instead of magic numbers for CPUID cache info
This is an attempt to make the CPUID cache topology code clearer, by
replacing the magic numbers in the code with #defines, and moving all
the cache information to the same place in the file.

I took care of comparing the assembly output of compiling
target-i386/cpu.c before and after applying this change, to make sure
not a single bit was changed on cpu_x86_cpuid() before and after
applying this patch (unfortunately I had to manually check existing
differences, because of __LINE__ expansions on
object_class_dynamic_cast_assert() calls).

This even keeps the code bug-compatible with the previous version: today
the cache information returned on AMD cache information leaves (CPUID
0x80000005 & 0x80000006) do not match the information returned on CPUID
leaves 2 and 4. The L2 cache information on CPUID leaf 2 also doesn't
match the information on CPUID leaf 2. The new constants should make it
easier to eventually fix those inconsistencies. All inconsistencies I
have found are documented in code comments.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: liguang <lig.fnst@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
2013-09-03 12:25:56 +02:00
..
Makefile.objs target-i386: Move hyperv_* static globals to X86CPU 2013-08-16 18:44:33 +02:00
TODO target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions 2012-01-11 09:55:28 +01:00
arch_dump.c dump: rebase from host-private RAMBlock offsets to guest-physical addresses 2013-08-08 11:01:46 -04:00
arch_memory_mapping.c cpu: Turn cpu_get_memory_mapping() into a CPUState hook 2013-06-11 18:03:35 +02:00
cc_helper.c target-i386/helper: remove DF macro 2013-06-15 17:50:21 +00:00
cc_helper_template.h target-i386: Implement BLSR, BLSMSK, BLSI 2013-02-18 15:52:05 -08:00
cpu-qom.h target-i386: Move hyperv_* static globals to X86CPU 2013-08-16 18:44:33 +02:00
cpu.c target-i386: Use #defines instead of magic numbers for CPUID cache info 2013-09-03 12:25:56 +02:00
cpu.h Merge remote-tracking branch 'qemu-kvm/uq/master' into stable-1.5 2013-08-29 17:21:51 -05:00
excp_helper.c target-i386/helper: remove EIP macro 2013-06-15 17:50:13 +00:00
fpu_helper.c target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
gdbstub.c cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
helper.c cpu: Use QTAILQ for CPU list 2013-09-03 12:25:55 +02:00
helper.h target-i386: Use mulu2 and muls2 2013-02-27 19:06:28 +00:00
int_helper.c target-i386/helper: remove EDX macro 2013-06-15 17:49:10 +00:00
ioport-user.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
kvm-stub.c kvm: Move kvm_allows_irq0_override() to target-i386, fix return type 2012-08-09 16:16:55 +03:00
kvm.c Merge remote-tracking branch 'qemu-kvm/uq/master' into stable-1.5 2013-08-29 17:21:51 -05:00
kvm_i386.h softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
machine.c kvm: migrate vPMU state 2013-08-09 21:19:52 +02:00
mem_helper.c target-i386/helper: remove EDX macro 2013-06-15 17:49:10 +00:00
misc_helper.c cpu: Use QTAILQ for CPU list 2013-09-03 12:25:55 +02:00
ops_sse.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
ops_sse_header.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
seg_helper.c target-i386: Change LOG_PCALL_STATE() argument to CPUState 2013-07-09 21:33:04 +02:00
shift_helper_template.h target-i386: compute eflags outside rcl/rcr helper 2013-02-18 15:03:56 -08:00
smm_helper.c log: Change log_cpu_state[_mask]() argument to CPUState 2013-07-09 21:33:04 +02:00
svm.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
svm_helper.c target-i386: fix over 80 chars warnings 2013-06-15 17:50:38 +00:00
topology.h target-i386: Inline bitops_flsl 2013-02-16 11:12:29 +00:00
translate.c tcg: Change tcg_gen_exit_tb argument to uintptr_t 2013-09-02 09:08:30 -07:00