Eduardo Habkost 885bb0369a add Opteron_G4 CPU model (v2)
This patch addes a Bulldozer-based Opteron_G4 CPU model.

This version has the ffxsr bit actually disabled, to match what was
documented below. Thanks to Andre Przywara for spotting the bug.

I am trying to be conservative with the new model, so I am enabling only
features known to be useful to guests, and not enabling anything that
was not tested or found to be useful to a guest.

List of missing flags in comparison to real hardware:

- vme: host-specific feature.
- osxsave: it is not set here because it is set by the guest OS, not by KVM
- monitor: this is filtered out by the KVM module, so no point in
  enabling it.
- mmxext: untested, so not enabled.
- Perf*, Topology*, lwp, ibs: not emulated by KVM.
- wdt, skinit, osvw, altmovcr8, extapicspace, cmplegacy: untested,
  so not enabled.

List of new flags, in comparison to the Opteron_G3 model:

- xsave: xsave feature, already implemented by Qemu
- avx, aes, sse4.x, ssse3, pclmulqdq: all new state the new instructions
  could use is handled by the xsave state loading/saving code on Qemu.
- pdpe1gb: 1GB pages, supported by the KVM kernel module.
- ffxsr: untested, so not enabled
- fma4, xop: all new state the new instructions could use is handled by
  the xsave loading/saving code on Qemu.
- 3dnowprefetch: safe to pass through, though the flag is not used by
  Linux guests, at least.

Below is the comparison between the current Opteron_G3 model
and the new model being added.

- The "full" line contains the flags found on actual hardware.
- The "missing" line shows the flags that are present on actual
  hardware, but not on the added Opteron_G4 model.
- The "new" line shows the flags that were not on the Opteron_G3 model
  but are on Opteron_G4.

feature_edx:
  Opteron_G3: sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de     fpu
  full:       sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de vme fpu
  Opteron_G4: sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de     fpu
  missing:                                                                                              vme

feature_ecx:
  Opteron_G3:                       popcnt               cx16       monitor           sse3
  full:       avx osxsave xsave aes popcnt sse4.2 sse4.1 cx16 ssse3 monitor pclmulqdq sse3
  Opteron_G4: avx         xsave aes popcnt sse4.2 sse4.1 cx16 ssse3         pclmulqdq sse3
  missing:        osxsave                                           monitor
  new:        avx         xsave aes        sse4.2 sse4.1      ssse3         pclmulqdq

extfeature_edx:
  Opteron_G3: lm rdtscp               fxsr mmx        nx pse36 pat cmov mca pge mtrr syscall apic cx8 mce pae msr tsc pse de     fpu
  full:       lm rdtscp pdpe1gb ffxsr fxsr mmx mmxext nx pse36 pat cmov mca pge mtrr syscall apic cx8 mce pae msr tsc pse de vme fpu
  Opteron_G4: lm rdtscp pdpe1gb       fxsr mmx        nx pse36 pat cmov mca pge mtrr syscall apic cx8 mce pae msr tsc pse de     fpu
  missing:                                     mmxext                                                                        vme
  new:                  pdpe1gb

extfeature_ecx:
  Opteron_G3:                                                                misalignsse sse4a abm                        svm           lahf_lm
  full:       Perf* Topology* fma4 lwp wdt skinit xop ibs osvw 3dnowprefetch misalignsse sse4a abm altmovcr8 extapicspace svm cmplegacy lahf_lm
  Opteron_G4:                 fma4                xop          3dnowprefetch misalignsse sse4a abm                        svm           lahf_lm
  new:                        fma4                xop          3dnowprefetch
  missing:    Perf* Topology*      lwp wdt skinit     ibs osvw                                     altmovcr8 extapicspace     cmplegacy

Changes v1 -> v2:
 - Actually disable ffxsr bit

Cc: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-03-12 14:05:25 -05:00
2012-03-12 14:05:25 -05:00
2012-03-01 12:58:46 +02:00
2012-02-21 10:21:05 +01:00
2012-02-22 17:23:50 -02:00
2012-03-12 14:05:25 -05:00
2012-01-21 05:17:02 +01:00
2012-02-28 22:33:41 +01:00
2012-02-28 22:33:42 +01:00
2012-02-28 22:33:42 +01:00
2012-02-28 22:33:42 +01:00
2012-02-28 22:33:42 +01:00
2012-02-28 22:33:42 +01:00
2012-03-05 19:51:18 +01:00
2012-02-28 22:33:43 +01:00
2012-03-08 15:22:11 +00:00
2011-11-07 10:57:36 -06:00
…
…
…
2012-01-13 10:55:56 -06:00
…
2012-02-17 09:58:22 -06:00
2011-12-02 10:50:57 +00:00
2011-08-27 15:42:35 +00:00
2011-10-21 18:14:30 +02:00
2011-12-06 11:40:01 -02:00
2011-12-06 11:40:01 -02:00
…
…
…
2012-01-18 10:23:39 -02:00
2011-09-16 08:26:31 -05:00
2012-01-13 10:37:00 +00:00
…
2012-01-12 10:05:37 -06:00
2012-01-12 10:05:37 -06:00
2012-01-12 10:05:37 -06:00
2012-01-12 10:05:38 -06:00
2011-11-07 08:01:15 +00:00
…
2012-02-09 16:17:51 +01:00
…
…
2012-03-03 18:10:16 +00:00
2012-02-28 22:33:41 +01:00
2011-11-01 10:58:08 -05:00
2012-01-10 09:36:43 +01:00
2012-03-07 13:03:51 +00:00
2011-10-31 21:52:17 +01:00
2011-10-31 21:52:17 +01:00
…
2012-02-22 13:29:07 +01:00
2011-09-10 16:57:36 +00:00
…
…
2011-06-07 13:52:10 -05:00
2011-12-02 10:50:57 +00:00
2012-03-05 17:40:12 +02:00
…
2011-12-02 10:50:57 +00:00
2011-08-27 15:42:35 +00:00
2011-08-27 15:42:35 +00:00
…
2011-10-16 13:13:05 +02:00
2011-10-21 18:14:30 +02:00
2012-01-13 10:55:56 -06:00
2011-08-04 15:51:22 +02:00
2012-03-07 12:27:42 +02:00
2012-03-07 12:27:42 +02:00
2011-06-14 03:08:57 +02:00
2011-12-09 11:25:22 +00:00
2011-12-02 10:50:57 +00:00
…
2012-03-05 17:40:12 +02:00
2012-03-05 17:40:12 +02:00
2012-02-17 08:33:32 -06:00
2011-08-27 15:42:35 +00:00
2012-01-13 10:55:56 -06:00
2012-02-15 09:39:21 -06:00
2012-02-24 13:36:04 -06:00
2011-12-22 11:53:59 +01:00
2011-12-22 11:53:59 +01:00
2012-02-04 11:49:34 +00:00
2012-02-01 16:24:40 -06:00
2012-02-17 08:33:32 -06:00
2012-02-17 08:33:32 -06:00
2011-12-22 11:53:58 +01:00
…
2012-01-13 10:55:56 -06:00
…
2012-01-10 18:23:58 +01:00
…
2012-01-10 18:23:58 +01:00
…
…
2012-02-03 10:41:08 -06:00
2012-03-02 11:56:38 +00:00
2012-02-17 12:41:59 +01:00
2011-10-21 18:14:30 +02:00
2012-02-17 08:33:33 -06:00
2011-12-15 09:20:50 -06:00
2012-02-17 08:33:32 -06:00
2011-12-06 10:07:04 +00:00
…
…
…
…
…
2011-07-21 16:48:13 -03:00
…
…
…
2011-12-11 17:50:43 -06:00
…
…
2011-10-01 09:31:08 +00:00
2011-10-01 09:31:08 +00:00
2011-10-01 09:31:08 +00:00
2012-01-04 13:34:50 +02:00
2011-07-23 11:26:12 -05:00
2011-08-27 15:42:35 +00:00
2011-10-31 21:52:17 +01:00
…
2012-02-28 22:33:41 +01:00
…
2012-03-07 12:28:04 +01:00
…
2012-03-02 11:56:38 +00:00
2011-08-27 15:42:35 +00:00
2011-09-10 16:57:39 +00:00

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team
S
Description
Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
Readme GPL-2.0
708 MiB
0 Stars 1 Watchers 0 Forks
Languages
C 82.3%
C++ 6.9%
Python 3.5%
Dylan 2.7%
Shell 1.5%
Other 2.9%