History log of /external/qemu/target-i386/hax-all.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
96a590593d9119d5b91d51652c2cb76c98a28c07 30-Apr-2014 baohong <baohong.liu@intel.com> Add x86_64 GPs and MSRs for cpu sync up.

Change-Id: I82ed87bed7680f76a020e664c0ca18a12d115075
Signed-off-by: baohong <baohong.liu@intel.com>
/external/qemu/target-i386/hax-all.c
7891dd35fa2439a70f43ab8572778a398365bf24 28-Apr-2014 David 'Digit' Turner <digit@google.com> Support building with newest Mingw64 cross-toolchain.

This modifies android-configure.sh to detect the new Mingw64-based
cross toolchain (i.e. x86_64-w64-mingw32-gcc) and use it when it
is in the user's path.

Note that this only builds a 32-bit Windows binary, it just uses
a different toolchain to do it. A future patch will add support
for building both Win32 and Win64 binaries at the same time
(which the new toolchain supports).

Since this switches from GCC 4.2 to 4.8, this introduces a ton of
new warnings that require some cleanups in the sources too.

Only the most important warnings are fixed here.

Change-Id: Iec8c9b8332d4a38a2cb8acf368c8aa5341cf77be
/external/qemu/target-i386/hax-all.c
7f38c7f905384c064b88fbdfa2eb054a92be63f3 26-Mar-2014 David 'Digit' Turner <digit@google.com> hax: CPUOldState -> CPUState

Change-Id: I4352da69e3a4e064a9fbaebee1dcb717cbb329b7
/external/qemu/target-i386/hax-all.c
6657678c3d86395084f6a699e73614195f06c445 24-Mar-2014 David 'Digit' Turner <digit@google.com> Introduce CPUState.

This patch splits the definitions previously found in CPUArchState,
to place some of them in a common data structure called CPUState,
to mirror upstream.

Note that upstream also makes CPUState a complete QOM object that
derives from DeviceState / DeviceClass, but this patch doesn't do
that. That's why the target-*/cpu-qom.h files, as well as
include/qom/cpu.h are not the real ones from upstream yet.

Future patches will get rid of CPUOldState, which is currently used
as an alias for CPUArchState, but will be replaced entirely by
CPUState, requiring changing the signature of many functions to
match upstream.

QOM-ification will probably happen after that, but may require
a few more patches due to layering / coupling issues.

Change-Id: Ifc33f8abe2aa80b20da13f5c83c109e37aff7e11

Conflicts:
cputlb.c
target-arm/op_helper.c
target-i386/op_helper.c
target-mips/op_helper.c
/external/qemu/target-i386/hax-all.c
4ab1225535dfc5fbcbde37a171b39224ea34e30b 24-Mar-2014 David 'Digit' Turner <digit@google.com> exec.c: Use a QTAILQ to list CPUs.

This introduces CPUState, a mere typedef to CPUOldState for now,
and changes the way CPUs are listed in QEMU. The goal is to get
closer to upstream, while also allowing really separating CPUState
from CPUArmState in future patches.

+ Move "current_cpu" to a thread-local variable on Linux, just like
upstream. Testing shows this doesn't affect performance.

Change-Id: Id07bbef4ba1584e607bec647d5117ac755c48ce6
/external/qemu/target-i386/hax-all.c
c005246ed03de874fdc432073ba8e5e8ebfed922 25-Feb-2014 David 'Digit' Turner <digit@google.com> Remove trailing spaces in misc sources.

Change-Id: I573d4e816112b7401b3c824fbe773b85a8601531
/external/qemu/target-i386/hax-all.c
e2678e116c8cdb0f36b247a5bd9cfacc849362fc 16-Jan-2014 David 'Digit' Turner <digit@android.com> Rename CPUState to CPUOldState.

Upstream qemu has split the cpu state into two new data structures:

CPUState -> is used to model the CPU state through the QEMU
object model.

CPUArchState -> actually a macro that aliases CPUArmState,
CPUX86State or CPUMIPSState.

Both were part of the "CPUState" in the current emulator sources.

Previous patches introduced CPUArchState, as a simple alias to the
machine-specific state. This patch renames any use of CPUState in
the current code to CPUOldState, except within target-*/ directories
where it is replaced by CPU${ARCH}State instead.

This will allow bringing the upstream CPUState definition in the
source tree, and slowly migrate everything to the right location.

Change-Id: I88b79e6e89f1f36084dc2642e1cf415135e4da09
/external/qemu/target-i386/hax-all.c
a2c14f947951612b45024095afd2210aa7368773 04-Feb-2014 David 'Digit' Turner <digit@google.com> Cleanup: Remove 100+ compiler warnings.

This is a big cleanup that removes compiler warnings by performing
the following:

- Remove unused functions or variables.
- Change pointer cast to be alias safe using unions.
- Use __attribute__((unused)) on some local variable definitions
when their usage depends on conditional defines that are not
always true when compiling the same source several times.
- Fix a couple array indexing bugs.

There are still a few warnings from the JSON lexer, libjpeg and
the TCG helpers though, but the overall compilation is much cleaner.

BUG=NONE

Change-Id: Ic4483e6402b266ecfd7bca8c92a73d8fcf392a1f
/external/qemu/target-i386/hax-all.c
aa8236dc1b1ea300ab18716db5b8fab42aca3ca7 10-Jan-2014 David 'Digit' Turner <digit@android.com> qemu-malloc.c: Remove qemu-specific heap routines.

Remove all uses of qemu_malloc/malloc0/realloc/free/strdup/etc to use
the equivalent GLib functions (g_malloc, g_free, ...) as per upstream.

This also removes qemu-malloc.c since it's no longer required.

Change-Id: I3c36a0396b73dd114b8da385b43f56a2e54dbb15
/external/qemu/target-i386/hax-all.c
fba19d9f0bf94a11e87dd09e230b621025436b76 01-Apr-2012 Jiang, Yunhong <yunhong.jiang@intel.com> Add fast mmio support

In HAXM 1.0, HAXM driver utilizes QEMU to decode and emulate MMIO accesses.
This simplified the HAXM driver implementation. However, decoding in QEMU is
slow because QEMU needs to sync with the HAXM driver regarding the vCPU state,
guest page tables, etc.

Newer HAXM driver will decode some MMIO instructions, and QEMU
will get the decoded instruction information like the physical address,
access direction etc, and then invoke the MMIO handler directly.

This boosts MMIO handling performance significantly, thus performance of 2D/3D
games because they performance very frequent MMIO access for GLES commands to
the host translator.

Change-Id: Ida308b2e6da3697ee37a1b28a9645916e104d9ff
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Signed-off-by: Nakajima, Jun <jun.nakajima@intel.com>
/external/qemu/target-i386/hax-all.c
8a539eaab40dc7a8047dbf97c081467029e6c518 23-Mar-2012 Jiang, Yunhong <yunhong.jiang@intel.com> Add a HAXM interface for QEMU API version

Add a HAXM interface so that QEMU can communicate its API version to HAXM.

With this, HAXM can keep better backward compatibility, for example, masking
of the new features if qemu does not support new features.

Change-Id: I24c7c8d353653978f507739f6e53a9d389d06e43
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
/external/qemu/target-i386/hax-all.c
1991d8c2b6b85170ee1707ca19fe5c746187a77c 23-Feb-2012 Jean-Baptiste Queru <jbq@google.com> Merge "Check HAXM capability in QEMU"
4a5a0efd49f100c7d53920807c83d9c74304ecd8 22-Feb-2012 Jiang, Yunhong <yunhong.jiang@intel.com> Check HAXM capability in QEMU

Checking HAXM capability to check if emulator can use HAXM virtalization.
Currently two possibility that HAXM not work. Firstly is VT/NX is not enabled
in the system, seconly is HAXM have used up the memory quota. See code comemnts
for the memry quota explaination.

Checking the capability in advance can give user more information that why HAXM
is not working and be more user friendly.

Change-Id: I13f73734cf783398f485fabd19cce43364b571c3
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Gao, Fengqian <fengqian.gao@intel.com>
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
/external/qemu/target-i386/hax-all.c
1d1280d7d347bb9467bfe9c161cba254f9e55d1c 22-Feb-2012 Jiang, Yunhong <yunhong.jiang@intel.com> Fix the vmid issue in HAX

This patch is lost when submit the HAX patchset. Without this patch, only one emulator instance can use HAXM.

Change-Id: Ia8e47ea471ae154036bb5721c51d6d099d9aff5f
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
/external/qemu/target-i386/hax-all.c
e4a3c7801e0075a49674c79972394ad962b338f2 18-Dec-2011 Jun Nakajima <jun.nakajima@intel.com> New files to add HAX support

QEMU emulator interacts with the HAX kernel module. A HAX (Hardware-based Accelerated eXecution)
kernel module is required to use HAX support. Most guest instructions run in VMX non-root
(i.e. in hardware) mode and achieve near-native (relative to the host) performance.
QEMU still emulates PIO/MMIO instructions and non-PG (paging) mode operations.

HAX is supported only on Mac OS X and Windows hosts when Intel VT is present.

Change-Id: I8dd52a35e315437dc568f555742bb8ab7e9d8ab2
Signed-off-by: Zhang, Xiantao <xiantao.zhang@intel.com>
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Jiang Yunhong <yunhong.jiang@intel.com>
Signed-off-by: Nakajima, Jun <jun.nakajima@intel.com>
/external/qemu/target-i386/hax-all.c