History log of /external/qemu/cputlb.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0e5ff1bd3073e3847ac8400ba46814878beb8605 04-Jul-2014 David 'Digit' Turner <digit@google.com> memcheck: Remove feature entirely

This patch removes the memcheck feature from the Android emulator
code base. This is for several reasons:

- Supporting the feature impacts many QEMU-specific emulation files
in subtle ways, that make it difficult to refactor this code to
integrate upstream changes.

- The feature only works for ARM (32-bit), has no unit tests, and
generates massive amounts of false positive messages coming
from the platform.

- Barely anyone uses it.

This feature might make a comeback in the future, but this will be
under a different life-form that will have adapted to the new state
of the code.

+ As a bonus, fix the build!

Change-Id: Idd19a3bc7923379cb1e82850f14499549b6a991b
/external/qemu/cputlb.c
86b1fb06ee6ef53d8961ce96343ba4aa37518840 21-Mar-2014 David 'Digit' Turner <digit@google.com> tcg: Upgrade to upstream version.

This switches the full TCG implementation to the upstream version
from the following upstream commit:

1a8e80d7e82aa385ad887dba5d039e399a18264b

Note that this requires completely reqwriting the softmmu_template.h
declarations to adapt to the new world order where all ld/st helpers
now accepts a CPUArchState* value as their first parameter.

+ This also gets rid of the REGPARM macro, which means that on
i386, parameters are now passed on the stack instead of using
registers. As surprising as it is, this doesn't seem to affect
emulation performance in significant ways when starting the
emulator with -force-32bit, compared to the latest SDK emulator
binary. This may be due to the improved binary translator.

Note that this doesn't switch the emulation to use the new
MemoryRegion API, so there are still a few minor differences
with upstream softmmu_*.h headers.

The target-*/ sources have been minimally modified to accomodate
for the changes, and everything seems to work. However, not that
CONFIG_ANDROID_MEMCHECK_MMU hasn't been tested yet.

+ get rid of obsolete softmmu_outside_jit.c

NOTE: There are two important differences with the upstream sources:

- An '#undef small' in tcg.c used to build the Windows binaries
with mingw32 on Linux.

- The declaration of cc_compute_all and cc_compute_c helpers in
target-i386/helper.h use TCG_CALL_NO_SE instead of
TCG_CALL_NO_SE_RWG. Otherwise, it's impossible to boot
an x86 system image properly.

Change-Id: I6ed5c58f237493d29b1cefaff3e0db6f58977fbf
/external/qemu/cputlb.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/cputlb.c
e6125dec823c2725c6b494378a7acd5b6c33aa4f 04-Apr-2014 David 'Digit' Turner <digit@google.com> softmmu: Pass env to load/store routines.

Also define __ldl_mmu et al. in cputlb.c because the TCG-generated
code still calls these directly. Note that these will go once we
actually upgrade TCG to a more recent version.

Change-Id: Id1983a9f16f64a28c089e458c79f74ac065bf66c
/external/qemu/cputlb.c
eb3bc46a1a876f279b06d7372bf5866fbcf4e8f8 21-Mar-2014 David 'Digit' Turner <digit@google.com> exec/softmmu*: Misc fixes.

Upstream 2050396801ca0c8359364d61eaadece951006057
Upstream b065927a02cbbaca032ed20d3039baca0914165c

Change-Id: I5b484ed026f8755804d443d45be2e96010cef60a
/external/qemu/cputlb.c
0d8b235c0c6c02de86a4e7415d574175b4518ff0 20-Mar-2014 David 'Digit' Turner <digit@google.com> Large page TLB flush

+ Remove unused is_softmmu parameter.

Upstream d4c430a80f000d722bb70287af4d4c184a8d7006
Upstream 97b348e7d221c94ddde609346407bd2cd6f85044

Change-Id: I7ccc6a8ffc040f91a58a3206d95417d22001b67b
/external/qemu/cputlb.c
eca7bc24e45fb6809582795ff88f13384b5ce7df 14-Mar-2014 David 'Digit' Turner <digit@google.com> softmmu_header.h: Pass CPUArchState to helper routines.

This patch modifies the functions defined in softmmu_header.h
to accept a CPUArchState as their first parameter, then it
adjusts every caller appropriately.

This gets up closer to upstream, and remove the obsolete
softmmu_outside_jit.h that was used to do the same thing.

Change-Id: I9eef01e95b7233c8c6f6da43d17262b9a9ebcd99
/external/qemu/cputlb.c
5bb450ee9cc5da0c6582e63f41c504c7861e2788 14-Mar-2014 David 'Digit' Turner <digit@google.com> Rename CONFIG_MEMCHECK to CONFIG_ANDROID_MEMCHECK

Change-Id: I9b0edcc1e243111f86f18c22eecbebb23219c297
/external/qemu/cputlb.c
96e493a7f0be0193cb17b24c3492d998411b5031 14-Mar-2014 David 'Digit' Turner <digit@google.com> Move memcheck implementation to android/qemu/memcheck/

Change-Id: I806820d2c3d3f1436bbca54e53a7fa1a0e0a4dba
/external/qemu/cputlb.c
01ee5b8ded901c76731bab7a12a87c2002479014 14-Mar-2014 David 'Digit' Turner <digit@google.com> uninline get_page_addr_code()

Upstream d39e822265e56af761cc506ac45768ab8af940b4

Change-Id: I91600a59d9eb997503d01123b1a8c83e054a6d99
/external/qemu/cputlb.c
3d82f5aa7dee68f223e033136992312fcf6c7f89 14-Mar-2014 David 'Digit' Turner <digit@google.com> Move GETPC() definition from dyngen-exec.h to exec-all.h

Upstream 3917149d96cfa5f619de770af6059f37b6e1df77

Change-Id: I24eb8d2a428be2477a85e2cf29299f9e54df624b
/external/qemu/cputlb.c
3e0677df2819b1366819fe4112dc8464425b6eda 07-Mar-2014 David 'Digit' Turner <digit@google.com> translate-all.c: Multi-level page maps.

This brings translate-all.c to a state much closer to upstream.
The major difference is the implementation of multi-level page
tables (for PageDesc and PhysPageDesc entries). This is a preliminary
requirement to handle 64-bit address spaces properly.

+ Move cpu_interrupt() from exec.c to translate-all.c

Change-Id: I12f17cc92faa51cf6eb9ceba2be4b29817eed5fe
/external/qemu/cputlb.c
81911b0de42d9e949deda2dfef6a59a1c0561bda 10-Feb-2014 David 'Digit' Turner <digit@google.com> Remove dead KQEMU support code.

CONFIG_KQEMU was never defined anyway, so remove this dead code
from the source tree.

Change-Id: Ie854f7015f1c02352b0a59a9b7ff0294fa889a6e
/external/qemu/cputlb.c
0e0515410009c5bdd4d2d77a4a9131081573f040 23-Jan-2014 David 'Digit' Turner <digit@android.com> migration/qemu-file.h: Move QEMUFile declarations here.

Move the QEMUFile-related declarations to migration/qemu-file.h,
from hw/hw.h to get closer to upstream. Note that this also
updates the implementation slightly. The end result is still
different from upstream in certain ways, that will be handled
in future patches.

Change-Id: I11719c4449040df13d9e6f62c55d642a0dd6434d
/external/qemu/cputlb.c
4d6613c972c53178ff9ea39de7fa79d07649fad5 22-Jan-2014 David 'Digit' Turner <digit@android.com> Simple renaming: CPUOldState -> CPUArchState where relevant.

This patch changes a few headers and sources to match upstream when
distinguishing between CPUArchState and CPUOldState (which will become
CPUState soon). For now, both types are identical so this should not
change the generated binaries at all.

Change-Id: I738b4ccaf75838a5931538dd52d1873750f1b816
/external/qemu/cputlb.c
3dc53fc5342d24fae977049a40c34cc63ba04ad6 17-Jan-2014 David 'Digit' Turner <digit@android.com> cputlb.c: move tlb routines there to match upstream.

This contains misc tlb routines that were previously in exec.c.
Note that tb_flush_jmp_cache was moved to translate-all.c

Change-Id: I60046b55ad46f6fb78c5dbd9444bef137abc5aca
/external/qemu/cputlb.c