Statistics
| Branch: | Revision:

root / target-i386 @ 795ca114

# Date Author Comment
0169c511 01/25/2014 01:52 am Anthony Liguori

Merge remote-tracking branch 'qemu-kvm/uq/master' into staging

  • qemu-kvm/uq/master:
    kvm: always update the MPX model specific register
    KVM: fix addr type for KVM_IOEVENTFD
    KVM: Retry KVM_CREATE_VM on EINTR
    mempath prefault: fix off-by-one error
    kvm: x86: Separately write feature control MSR on reset...
439d19f2 01/20/2014 03:25 pm Paolo Bonzini

kvm: always update the MPX model specific register

The original patch from Liu Jinsong restricted them to reset or full
state updates, but that's unnecessary (and wrong) since the BNDCFGS
MSR has no side effects.

Cc: Liu Jinsong <>
Signed-off-by: Paolo Bonzini <>

133fe774 01/14/2014 04:10 am Edgar E. Iglesias

Merge remote branch 'luiz/queue/qmp' into qmpq

  • luiz/queue/qmp:
    migration: qmp_migrate(): keep working after syntax error
    qerror: Remove assert_no_error()
    qemu-option: Remove qemu_opts_create_nofail
    target-i386: Remove assert_no_error usage
    hw: Remove assert_no_error usages...
4cddc7f4 01/10/2014 09:04 pm Anthony Liguori

Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging

QOM CPUState refactorings / X86CPU

  • TLB invalidation optimizations
  • X86CPU initialization cleanups
  • Preparations for X86CPU hot-unplug
  1. gpg: Signature made Tue 24 Dec 2013 04:51:52 AM PST using RSA key ID 3E7E013F...
074dcc22 01/09/2014 11:44 pm Anthony Liguori

Merge remote-tracking branch 'rth/ldst-i386-2' into staging

  • rth/ldst-i386-2: (49 commits)
    target-i386: Tidy ljmp
    target-i386: Rename gen_op_jmp_T0 to gen_op_jmp_v
    target-i386: Tidy some size computation
    target-i386: Remove gen_op_mov_reg_A0
    target-i386: Remove gen_op_mov_TN_reg...
78261634 01/07/2014 10:39 pm Richard Henderson

target-i386: Tidy ljmp

Remove an unnecessary move opcode.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

74bdfbda 01/07/2014 10:39 pm Richard Henderson

target-i386: Rename gen_op_jmp_T0 to gen_op_jmp_v

And make the destination argument explicit.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

830a19a4 01/07/2014 10:38 pm Richard Henderson

target-i386: Tidy some size computation

Clean up relics of multiple size domains: - MO_16 + 1 => - 1 + 1 => 0.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

33b7891b 01/07/2014 10:36 pm Richard Henderson

target-i386: Remove gen_op_mov_reg_A0

Replace with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

c56baccf 01/07/2014 10:36 pm Richard Henderson

target-i386: Remove gen_op_mov_TN_reg

Replace with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

fd5185ec 01/07/2014 10:32 pm Richard Henderson

target-i386: Remove gen_op_addl_T0_T1

Replace with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

68773f84 01/07/2014 10:32 pm Richard Henderson

target-i386: Remove gen_op_mov_reg_T1

Replace with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

480a762d 01/07/2014 10:30 pm Richard Henderson

target-i386: Remove gen_op_mov_reg_T0

Replace with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

fac0aff9 01/07/2014 10:16 pm Richard Henderson

target-i386: Tidy cpu_regs initialization

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

7effd625 01/07/2014 09:40 pm Richard Henderson

target-i386: Tidy addr16 code in gen_lea_modrm

Unlike the addr32, there was no bug. But we can use the same
technique to reduce the number of TCG ops.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

432baffe 01/07/2014 09:40 pm Richard Henderson

target-i386: Combine gen_push_T* into gen_push_v

Reduce ifdefs, share more code between paths, reduce the number of TCG
ops generated.

Add forgotten zero-extension in the TARGET_X86_64, !CODE64, ss32 case.

Reviewed-by: Peter Maydell <>...

8e31d234 01/07/2014 09:40 pm Richard Henderson

target_i386: Clean up gen_pop_T0

Reduce ifdefs, share more code between paths, reduce the number of TCG
ops generated. Avoid re-computing the size of the operation across
gen_pop_T0 and gen_pop_update.

Add forgotten zero-extension in the TARGET_X86_64, !CODE64, ss32 case....

ab4e4aec 01/07/2014 09:40 pm Richard Henderson

target-i386: Change dflag to TCGMemOp

Changing the domain to TCGMemOp makes it easier to interoperate
with other portions of the rest of the translator.

We now only have one domain for size operands inside the translator,
which makes things less confusing all the way around. There are...

6f17675a 01/07/2014 09:38 pm Richard Henderson

target-i386: Change gen_op_mov_reg_A0 size parameter to TCGMemOp

Change the domain of the parameter and update all callers.
Which lets us defer completely to gen_op_mov_reg_v.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

1d71ddb1 01/07/2014 09:38 pm Richard Henderson

target-i386: Change aflag to TCGMemOp

Changing the domain to TCGMemOp makes it easier to interoperate
with other portions of the rest of the translator.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

d3f4bbe3 01/07/2014 09:37 pm Richard Henderson

target-i386: Change gen_op_add_reg_* size parameter to TCGMemOp

These functions used the aflags/dflags domain, which is log2-1
of the byte size. Confusingly, they used enumeration values
from the log2 domain.

Change the domain of the parameter and update all callers....

c92aa1ad 01/07/2014 09:37 pm Richard Henderson

target-i386: Change gen_op_j*z_ecx size parameter to TCGMemOp

Change the domain of the parameter and update all callers.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

d67dc9e6 01/07/2014 09:37 pm Richard Henderson

target-i386: Use TCGMemOp for 'ot' variables

The 'ot' variables (operand type?) hold the log2(byte size) of
the operand being manipulated. This is the same as the MO_SIZE
subset of the TCGMemOp. Indeed, we often pass 'ot' to the
tcg_gen_qemu_ld/st functions....

2b98a7d7 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_movl_T0_T1

Replace it with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

a7e5c7de 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_andl_A0_ffff

Replace it with tcg_gen_ext16u_tl, and in two cases merge with a
previous move from cpu_regs.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

d5601ad0 01/07/2014 09:36 pm Richard Henderson

target-i386: Tidy extend + store

We can now use tcg_gen_qemu_st_i32 directly to avoid the extension.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

a7fbcbe5 01/07/2014 09:36 pm Richard Henderson

target-i386: Tidy extend + move

For the known MO_32/MO_64 cases, we don't need to extend a 32-bit temp
into a 64-bit temp before storing into the hardware register.

We do need the extension for the MO_8/MO_16 cases, in order for the
deposit_tl operation to work, so leave those alone....

97212c88 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_movl_T0_0

Propagate its definition into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

1b90d56e 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_movl_T0_im*

Propagate the definition of gen_op_movl_T0_im to all users.
The function gen_op_movl_T0_imu was unused.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

0ae657b1 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_movl_T0_im*

Propagate the definitions into all users. The only time that
gen_op_movl_T1_imu was used, the input was type 'unsigned',
so the replacement works identically.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

3250cff8 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_mov*_A0_im

Propagate the definitions into all users. In two cases, this allows
us to share code between the 32-bit and 64-bit immediate moves.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

cc0bce88 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_movtl_T*_im

Propagate the definitions into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

40b90233 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_andl_T0_ffff

Replace it with tcg_gen_ext16u_tl. In four places we can combine that
with a previous move into cpu_T0, and in one place we can infer that
the zero-extension has already happened via the previous load.

Reviewed-by: Peter Maydell <>...

f0706f0c 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_andl_T0_im

Replace it with its definition.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

fd8ca9f6 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_st_T0_A0

Propagate its definition into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

b5afc104 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_st_T1_A0

Propagate its definition into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

ee3138da 01/07/2014 09:36 pm Richard Henderson

target-i386: Fix typo in gen_push_T1

By inspection, obviously we should be storing T1 not T0.
This could only happen for x86_64 in 64-bit mode with 0x66
prefix to call insn -- i.e. never.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

c8fbc479 01/07/2014 09:36 pm Richard Henderson

target-i386: Tidy mov[sz][bw]

We can use the MO_SIGN bit to tidy the reg-reg switch statement
as well as pass it on to gen_op_ld_v, eliminating one call.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

4b1fe067 01/07/2014 09:36 pm Richard Henderson

target-i386: Tidy movsl

Always perform a sign-extending load. In the extremely unlikely
case that we've used an 0x66 prefix, the extension to 64-bits is
unnecessary but not wrong; the store will still examine only 16 bits.

Reviewed-by: Peter Maydell <>...

4eeb3939 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove unused arguments to gen_lea_modrm

The reg_ptr and offset_ptr outputs are universally unused.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

3655a19f 01/07/2014 09:36 pm Richard Henderson

target-i386: Use MO_BE for movbe

Fold the bswap into the memory operation.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

24b9c00f 01/07/2014 09:36 pm Richard Henderson

target-i386: Tidy gen_op_mov_TN_reg+tcg_gen_trunc_tl_i32

For the 16 and 32-bit cases, we don't need to truncate via
a temporary register.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

80b02013 01/07/2014 09:36 pm Richard Henderson

target-i386: Tidy load + truncate

We can now use tcg_gen_qemu_ld_i32 directly to avoid the truncation.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

909be183 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_ld_T0_A0

Propagate its definition into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

cc1a80df 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_ldu_T0_A0

Propagate its definition into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

0f712e10 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_ld_T1_A0

Propagate its definition into all users.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

dc732b76 01/07/2014 09:36 pm Richard Henderson

target-i386: Remove gen_op_lds_T0_A0

Replace its users by gen_op_ld_v with the MO_SIGN bit set.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

d4faa3e0 01/07/2014 09:36 pm Richard Henderson

target-i386: Introduce gen_op_st_rm_T0_A0

Too many places have the same test vs OR_TMP0 to indicate
a write back to memory. Hoist that to a subroutine.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

4ba9938c 01/07/2014 09:36 pm Richard Henderson

target-i386: Replace OT_* constants with MO_* constants

The MO_8/16/32/64 constants have the same encoding and meaning
as the OT_BYTE/WORD/LONG/QUAD. Since we rely on them being the
same, for the qemu_ld/st helpers, standardize on the common names.

Reviewed-by: Peter Maydell <>...

3523e4bd 01/07/2014 09:05 pm Richard Henderson

target-i386: Use new tcg_gen_qemu_st_* helpers

In preference to the older helpers. Stores only in this patch.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

3c5f4116 01/07/2014 09:05 pm Richard Henderson

target-i386: Use new tcg_gen_qemu_ld_* helpers

In preference to the older helpers. Loads only in this patch.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

5c42a7cd 01/07/2014 09:05 pm Richard Henderson

target-i386: Stop encoding DisasContext.mem_index

Now that we don't combine mem_index with operand size info,
we don't need to encode it. Which tidies many places that
access it.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

323d1876 01/07/2014 09:05 pm Richard Henderson

target-i386: Push DisasContext into load/store helpers

Rather than add s->mem_index into a combined size+mem_index
argument, pass the context down. This will allow cleaning
up s->mem_index later.

Reviewed-by: Peter Maydell <>
Signed-off-by: Richard Henderson <>

00b81053 01/06/2014 10:02 pm Peter Crosthwaite

target-i386: Remove assert_no_error usage

Replace an assert_no_error() usage with the error_abort system.

Signed-off-by: Peter Crosthwaite <>
Reviewed-by: Markus Armbruster <>
Signed-off-by: Luiz Capitulino <>

258f5abe 12/24/2013 02:47 pm Igor Mammedov

target-i386: Cleanup 'foo' feature handling

Features check, enforce, hv_relaxed and hv_vapic are treated as boolean
set to 'on' when passed from command line, so it's not necessary to
handle each of them separately. Collapse them to one catch-all branch
which will treat any feature in format 'foo' as boolean set to 'on'....

d024d209 12/24/2013 02:47 pm Igor Mammedov

target-i386: Cleanup 'foo=val' feature handling

Features family, model, stepping, level, hv_spinlocks are treated similarly
when passed from command line, so it's not necessary to handle each of them
individually. Collapse them to one catch-all branch which will treat...

912ffc47 12/24/2013 02:47 pm Igor Mammedov

target-i386: Convert 'check' and 'enforce' to static properties

  • Additionally convert check_cpuid & enforce_cpuid to bool and make them
    members of X86CPU
  • Make 'enforce' feature independent from 'check'

Signed-off-by: Igor Mammedov <>...

89314504 12/24/2013 01:30 pm Igor Mammedov

target-i386: Convert 'hv_relaxed' to static property

Signed-off-by: Igor Mammedov <>
Signed-off-by: Andreas Färber <>

0f46685d 12/24/2013 01:30 pm Igor Mammedov

target-i386: Convert 'hv_vapic' to static property

Signed-off-by: Igor Mammedov <>
Signed-off-by: Andreas Färber <>

c8f0f88e 12/24/2013 01:30 pm Igor Mammedov

target-i386: Convert 'hv_spinlocks' to static property

Signed-off-by: Igor Mammedov <>
Signed-off-by: Andreas Färber <>

02e51483 12/23/2013 05:30 pm Chen Fan

target-i386: Move apic_state field from CPUX86State to X86CPU

This motion is preparing for refactoring vCPU APIC subsequently.

Signed-off-by: Chen Fan <>
Signed-off-by: Andreas Färber <>

33dfdb56 12/23/2013 02:02 pm Alexander Graf

x86: only allow real mode to access 32bit without LMA

When we're running in non-64bit mode with qemu-system-x86_64 we can
still end up with virtual addresses that are above the 32bit boundary
if a segment offset is set up.

GNU Hurd does exactly that. It sets the segment offset to 0x80000000 and...

6bdf863d 12/18/2013 11:13 am Jan Kiszka

kvm: x86: Separately write feature control MSR on reset

If the guest is running in nested mode on system reset, clearing the
feature MSR signals the kernel to leave this mode. Recent kernels
processes this properly, but leave the VCPU state undefined behind. It...

0522604b 12/12/2013 02:13 pm Fernando Luis Vázquez Cao

target-i386: clear guest TSC on reset

VCPU TSC is not cleared by a warm reset (*), which leaves some types of Linux
guests (non-pvops guests and those with the kernel parameter no-kvmclock set)
vulnerable to the overflow in cyc2ns_offset fixed by upstream commit...

f86746c2 12/12/2013 02:12 pm Fernando Luis Vázquez Cao

target-i386: do not special case TSC writeback

Newer kernels are capable of synchronizing TSC values of multiple VCPUs
on writeback, but we were excluding the power up case, which is not needed
anymore.

Signed-off-by: Fernando Luis Vazquez Cao <>...

79e9ebeb 12/12/2013 02:10 pm Liu Jinsong

target-i386: Intel MPX

Add some MPX related definiation, and hardcode sizes and offsets
of xsave features 3 and 4. It also add corresponding part to
kvm_get/put_xsave, and vmstate.

Signed-off-by: Liu Jinsong <>
Signed-off-by: Paolo Bonzini <>

0c0cb6a2 12/07/2013 05:35 pm Anthony Liguori

Merge remote-tracking branch 'qemu-kvm/uq/master' into staging

  1. By Alex Williamson (1) and others
  2. Via Paolo Bonzini
    • qemu-kvm/uq/master:
      target-i386: fix cpuid leaf 0x0d
      qemu: mempath: prefault pages manually (v4)
      kvm: Query KVM for available memory slots...
33f373d7 12/05/2013 07:51 pm Liu Jinsong

target-i386: fix cpuid leaf 0x0d

Fix cpuid leaf 0x0d which incorrectly parsed eax and ebx.

However, before this patch the CPUID worked fine -- the .offset
field contained the size and was stored in the register that
is supposed to hold the size (eax), and likewise the .size field...

d916adaa 11/25/2013 07:41 pm Anthony Liguori

Merge remote-tracking branch 'bonzini/tags/for-anthony' into staging

Here are a bunch of 1.7-tagged patches that I was afraid
were getting forgotten or that did not have a clear maintainer responsible
for making a pull request.

  1. gpg: Signature made Thu 21 Nov 2013 08:40:59 AM PST using RSA key ID 9B4D86F2...
b5fc314b 11/21/2013 06:39 pm Paolo Bonzini

target-i386: yield to another VCPU on PAUSE

After commit b1bbfe7 (aio / timers: On timer modification, qemu_notify
or aio_notify, 2013-08-21) FreeBSD guests report a huge slowdown.

The problem shows up as soon as FreeBSD turns out its periodic (~1 ms)
tick, but the timers are only the trigger for a pre-existing problem....

2140cfa5 11/21/2013 06:39 pm Peter Maydell

target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid()

Fix build failures with clang when KVM is not enabled by
providing a stub version of kvm_arch_get_supported_cpuid().
We retain the compile time check that this function isn't
called when CONFIG_KVM is not set by guarding the stub with...

7865eec4 11/21/2013 06:01 pm Richard Henderson

target-i386: Fix addr32 prefix in gen_lea_modrm

Fix the following run-test-x86_64 testsuite failures:

-lea (%eax) = 0000000000000001
-lea (
%ebx) = 0000000000000002
-lea (%ecx) = 0000000000000004
-lea (
%edx) = 0000000000000008
-lea (%%esi) = 0000000000000010...

76c2975a 11/21/2013 05:56 pm Paolo Bonzini

target-i386: do not override nr_cores for -cpu host

Commit 787aaf5 (target-i386: forward CPUID cache leaves when -cpu host is
used, 2013-09-02) brings bits 31..26 of CPUID leaf 04h out of sync with
the APIC IDs that QEMU reserves for each package. This number must come...

81f3053b 11/21/2013 05:55 pm Paolo Bonzini

target-i386: yield to another VCPU on PAUSE

After commit b1bbfe7 (aio / timers: On timer modification, qemu_notify
or aio_notify, 2013-08-21) FreeBSD guests report a huge slowdown.

The problem shows up as soon as FreeBSD turns out its periodic (~1 ms)
tick, but the timers are only the trigger for a pre-existing problem....

ef4cbe14 11/07/2013 01:14 pm Stefan Weil

kvm: Fix uninitialized cpuid_data

This error was reported by valgrind when running qemu-system-x86_64
with kvm:

975 Conditional jump or move depends on uninitialised value(s)
975 at 0x521C38: cpuid_find_entry (kvm.c:176)
975 by 0x5235BA: kvm_arch_init_vcpu (kvm.c:686)...
0fd53fec 11/05/2013 09:34 am Paolo Bonzini

KVM: x86: fix typo in KVM_GET_XCRS

Only the first item of the array was ever looked at. No
practical effect, but still worth fixing.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Gleb Natapov <>

fc8ead74 10/18/2013 08:03 pm Anthony Liguori

Merge remote-tracking branch 'qemu-kvm/uq/master' into staging

  1. By Paolo Bonzini (2) and Jan Kiszka (1)
  2. Via Gleb Natapov
    • qemu-kvm/uq/master:
      kvmvapic: Prevent reading beyond the end of guest RAM
      x86: cpuid: reconstruct leaf 0Dh data
      x86: fix migration from pre-version 12...
1cb9b64d 10/18/2013 08:01 pm Anthony Liguori

Merge remote-tracking branch 'bonzini/configure' into staging

  1. By Peter Maydell (3) and Ákos Kovács (2)
  2. Via Paolo Bonzini
    • bonzini/configure:
      ui/Makefile.objs: delete unnecessary cocoa.o dependency
      default-configs/: CONFIG_GDBSTUB_XML removed
      Makefile.target: CONFIG_NO_* variables removed...
cf01ba9e 10/16/2013 07:21 pm Ákos Kovács

Makefile.target: CONFIG_NO_* variables removed

CONFIG_NO_* variables replaced with the lnot logical function

Signed-off-by: Ákos Kovács <>
[PMM: fixed a few CONFIG_NO_* uses that were missed]
Signed-off-by: Peter Maydell <>...

ab1eb72b 10/11/2013 07:36 pm Anthony Liguori

Merge remote-tracking branch 'rth/tcg-pull' into staging

  1. By Richard Henderson
  2. Via Richard Henderson
    • rth/tcg-pull:
      exec: Add both big- and little-endian memory helpers
      tcg: Add qemu_ld_st_i32/64
      tcg: Add TCGMemOp
      configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION...
39c153b8 10/10/2013 11:16 pm Anthony Liguori

Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging

QOM CPUState refactorings / X86CPU

  • Fix for X86CPU model field of qemu32/qemu64 CPU models
  • Bug fix for longjmp on FreeBSD
  • Removal of unused function
  • Confinement of clone syscall infrastructure to linux-user...
5cd8f621 10/10/2013 09:43 pm Richard Henderson

tcg: Move helper registration into tcg_context_init

No longer needs to be done on a per-target basis.

Signed-off-by: Richard Henderson <>

51fb256a 10/07/2013 12:48 pm Andreas Färber

cpu: Drop cpu_model_str from CPU_COMMON

Since this is only read in cpu_copy() and linux-user has a global
cpu_model, drop the field from generic code.

Signed-off-by: Andreas Färber <>

00fdef65 10/02/2013 09:55 pm Stefan Weil

target-i386: Fix compiler warning (integer constant is too large)

From buildbot default_i386_rhel61:

CC    i386-softmmu/target-i386/arch_memory_mapping.o
target-i386/arch_memory_mapping.c: In function 'walk_pde':
target-i386/arch_memory_mapping.c:110: warning:...
2560f19f 10/02/2013 06:58 pm Paolo Bonzini

x86: cpuid: reconstruct leaf 0Dh data

The data in leaf 0Dh depends on information from other feature bits.
Instead of passing it blindly from the host, compute it based on
whether these feature bits are enabled.

Signed-off-by: Paolo Bonzini <>...

c74f41bb 10/02/2013 06:58 pm Paolo Bonzini

x86: fix migration from pre-version 12

On KVM, the KVM_SET_XSAVE would be executed with a 0 xstate_bv,
and not restore anything.

Since FP and SSE data are always valid, set them in xstate_bv at reset
time. In fact, that value is the same that KVM_GET_XSAVE returns on...

f8e6a11a 10/02/2013 05:51 pm Eduardo Habkost

target-i386: Set model=6 on qemu64 & qemu32 CPU models

There's no Intel CPU with family=6,model=2, and Linux and Windows guests
disable SEP when seeing that combination due to Pentium Pro erratum #82.

In addition to just having SEP ignored by guests, Skype (and maybe other...

2e6ae666 09/23/2013 07:52 pm Anthony Liguori

Merge remote-tracking branch 'mjt/trivial-patches' into staging

  1. By Stefan Weil (8) and others
  2. Via Michael Tokarev
    • mjt/trivial-patches:
      tests/.gitignore: ignore test-throttle
      exec: Fix broken build for MinGW (regression)
      kvm: Fix compiler warning (clang)...
3e4be9c2 09/23/2013 07:52 pm Anthony Liguori

Merge remote-tracking branch 'qemu-kvm/uq/master' into staging

  1. By Alexey Kardashevskiy (3) and others
  2. Via Paolo Bonzini
    • qemu-kvm/uq/master:
      target-i386: add feature kvm_pv_unhalt
      linux-headers: update to 3.12-rc1
      target-i386: forward CPUID cache leaves when -cpu host is used...
469936ae 09/20/2013 07:09 pm Tobias Markus

target-i386: Fix segment cache dump

When in Long Mode, cpu_x86_seg_cache() logs "DS16" because the Default
operation size bit (D/B bit) is not set for Long Mode Data Segments since
there are only Data Segments in Long Mode and no explicit 16/32/64-bit
Descriptors....

f010bc64 09/20/2013 01:38 pm Andrew Jones

target-i386: add feature kvm_pv_unhalt

I don't know yet if want this feature on by default, so for now I'm
just adding support for "-cpu ...,+kvm_pv_unhalt".

Signed-off-by: Andrew Jones <>
Reviewed-by: Eduardo Habkost <>...

787aaf57 09/20/2013 01:38 pm Benoît Canet

target-i386: forward CPUID cache leaves when -cpu host is used

Some users running cpu intensive tasks checking the cache CPUID leaves at
startup and making decisions based on the result reported that the guest was
not reflecting the host CPUID leaves when -cpu host is used....

97577fd4 09/20/2013 01:37 pm James Hogan

cpu: Move cpu state syncs up into cpu_dump_state()

The x86 and ppc targets call cpu_synchronize_state() from their
*_cpu_dump_state() callbacks to ensure that up to date state is dumped
when KVM is enabled (for example when a KVM internal error occurs).
...

0e503577 09/20/2013 01:37 pm Marcelo Tosatti

fix steal time MSR vmsd callback to proper opaque type

Convert steal time MSR vmsd callback pointer to proper X86CPU type.

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Paolo Bonzini <>

bff93281 09/12/2013 09:24 pm Peter Maydell

target-i386: Only provide CMOV and friends if feature bit set

The instructions CMOVcc, FCMOVcc and F[U]COMI[P] should only be
present if the CMOV feature bit is set. Add missing feature bit
checks so we correctly fault if emulating a 486 or 586.
This fixes bug LP:1201446....

f2f8560c 09/12/2013 09:20 pm Paolo Bonzini

target-i386: fix disassembly with PAE=1, PG=0

CR4.PAE=1 will not enable paging if CR0.PG=0, but the "if" chain
in x86_cpu_get_phys_page_debug says otherwise. Check CR0.PG
before everything else.

Fixes "-d in_asm" for a code section at the beginning of OVMF....

5e891bf8 09/03/2013 01:25 pm Eduardo Habkost

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....

bdc44640 09/03/2013 01:25 pm Andreas Färber

cpu: Use QTAILQ for CPU list

Introduce CPU_FOREACH(), CPU_FOREACH_SAFE() and CPU_NEXT() shorthand
macros.

Signed-off-by: Andreas Färber <>

8cfd0495 09/02/2013 07:08 pm Richard Henderson

tcg: Change tcg_gen_exit_tb argument to uintptr_t

And update all users.

Reviewed-by: Aurelien Jarno <>
Signed-off-by: Richard Henderson <>

b5d54bd4 08/30/2013 01:21 am Anthony Liguori

Merge remote-tracking branch 'qemu-kvm/uq/master' into stable-1.5

  • qemu-kvm/uq/master:
    kvm-stub: fix compilation
    kvm: shorten the parameter list for get_real_device()
    kvm: i386: fix LAPIC TSC deadline timer save/restore
    kvm-all.c: max_cpus should not exceed KVM vcpu limit...