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/tcg/tcg.c
|
2e787a1d54ea4a34a6b75dcffe7dc9fa3aecb83f |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
TCG/x86: use stack for TCG temps Upstream ac0275dcfea6ec21705b30fe83c21686871e9d70 Upstream f44c99607a46484c52f03aed373e3a3a194af721 Change-Id: I7944a0934f93eb1bd0937b46e9ea5f5b76e8cf8e
/external/qemu/tcg/tcg.c
|
98c6a2d2a100cca93f5112ab0ef6d24e51f931f8 |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
TCG: remove broken stack allocation for call arguments Upstream 345649c054648ce5812bb2b247969d188dcb0f87 Change-Id: I506596f0a8246d52f8b774d28df7d51ecb8cb8c7
/external/qemu/tcg/tcg.c
|
6b1f7efc7fd26332676d7626f7f139f5b98b756c |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
TCG: fix negative frame offset calculations Upstream b591dc59bc98ee558db4ca512aa117748ebfdeef Change-Id: I467940dbae30cc7b055524f85527598102a8a6f2
/external/qemu/tcg/tcg.c
|
bf2340f1eae08ddada9ed09490aa83e0a1bd7586 |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
cpu-exec: unify do_interrupt call Upstream e694d4e289b05d0c9b118850eff961aa9ca33183 Upstream 3c688828bcb3afa2744e1f1729a40eef4a575b56 Upstream d8108fb187bb68459cfe7dca4b5c983db33bcc7b Change-Id: Ia492dae677ddfe052768b943f8ea275fab8a9c49
/external/qemu/tcg/tcg.c
|
0352ce4b5167ebc185bdec779e9642af75f1ccac |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: don't keep dead outputs in registers Upstream 8c11ad25f40ee443000d2dbc0ef296ee210d86b4 Change-Id: If7d46d8b4431c068355e4f69eb35ac4270535afe
/external/qemu/tcg/tcg.c
|
9bf492c3fedbd13ee0e2af94424c8bf48cb2fec5 |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: mark dead output argument in op_dead_args Upstream 6b64b624cde336f3df1146483e7858f5fa814f95 Change-Id: I9e72ab371c4bb82b6fb08142278d0599ef1c19a3
/external/qemu/tcg/tcg.c
|
53a08edf171bdbc7e3a2d89b78b96a33361a2760 |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: Replace op_dead_iargs by op_dead_args Upstream 866cb6cb21b91809f3f5c49c7c4268573552a108 Change-Id: I2592691c8f4eee7cf99e454e4a80526379e7ad70
/external/qemu/tcg/tcg.c
|
26d285dfa9f482e5b2f6d6df2bcb0eaed06cb1a9 |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: Use hash table + static table for helpers. This changes the registration of helper functions inside of TCG to: - Use a GHashTable to store the map from helpers to function names. - Move the helper registration from targets to tcg. - Merge tcg_register_helper into tcg_context_init. Note: this makes TCG more dependent on target helper.h headers, it adds significant coupling, but so be it. Upstream 7c57df0d852a9a9faf9068ff235886c8b28b113e Upstream 6e085f72c6d331fb0e9fc69e3061cd1e5893d9e4 Upstream 5cd8f6210f83db15702e81b91e40e7079608e6f3 Upstream 100b5e0170e86661aaf830869be930a1a201ed08 Upstream 84fd9dd3f78ced9d41e1160d43862bb620cb462a Change-Id: Ie0877cf9a62451d89881e882d06d04456e5abe1b
/external/qemu/tcg/tcg.c
|
9142071536d74f1b8370f79851c9c2ca92496628 |
|
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: Use a GHashTable for tcg_find_helper Upstream 6e085f72c6d331fb0e9fc69e3061cd1e5893d9e4 Change-Id: I8c8346c8dd0eacff25a72f4280bd246ea71a90d1
/external/qemu/tcg/tcg.c
|
5bb450ee9cc5da0c6582e63f41c504c7861e2788 |
|
14-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Rename CONFIG_MEMCHECK to CONFIG_ANDROID_MEMCHECK Change-Id: I9b0edcc1e243111f86f18c22eecbebb23219c297
/external/qemu/tcg/tcg.c
|
96e493a7f0be0193cb17b24c3492d998411b5031 |
|
14-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Move memcheck implementation to android/qemu/memcheck/ Change-Id: I806820d2c3d3f1436bbca54e53a7fa1a0e0a4dba
/external/qemu/tcg/tcg.c
|
975bba804aed54452f774cdbf79a7b4732fc7696 |
|
17-Feb-2014 |
David 'Digit' Turner <digit@google.com> |
Augment TCGContext. This moves many static buffers into the TCGContext data structure to match upstream. This shouldn't affect performance. Change-Id: Ib1fc7cf2baef155f1eaadbf9bfd9e2d381606a07
/external/qemu/tcg/tcg.c
|
c005246ed03de874fdc432073ba8e5e8ebfed922 |
|
25-Feb-2014 |
David 'Digit' Turner <digit@google.com> |
Remove trailing spaces in misc sources. Change-Id: I573d4e816112b7401b3c824fbe773b85a8601531
/external/qemu/tcg/tcg.c
|
67c355655125676a70926c8557a27e79e2d68a18 |
|
16-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
qemu-log.c: upstream integration. Change-Id: I3d999f5ec0ed9cef6c88ce8a21246974251cea09
/external/qemu/tcg/tcg.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/tcg/tcg.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/tcg/tcg.c
|
852088c7e08182c2de563872d558309815cbfa0d |
|
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move headers to include/exec/ Change-Id: Ife43f9cd12a02aa98f408043b0cccb9fe45a9ff7
/external/qemu/tcg/tcg.c
|
e90d665cd63a0bc5c3306e1ee3e98ad362546b16 |
|
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move more stuff to include/qemu/ and util/ Change-Id: I3d10ae4d5b050f7da565476e2c0f6be5d3348f5d
/external/qemu/tcg/tcg.c
|
37dc41a01f33a1e6aca0458b205c2b1609fe82c3 |
|
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move more files to include/qemu/ and util/ Change-Id: I79e70241894e8bbeea2de711ff9de742583c23b1
/external/qemu/tcg/tcg.c
|
7a78db75ad42aea283f5073f51891464104a9fc3 |
|
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move qemu-timer.h to include/qemu/timer.h Note: upstream still puts qemu-timer.c in the top-level directory, so no need to move it Change-Id: I475309d6f0040b4fd2277e52a2526825c112e91f
/external/qemu/tcg/tcg.c
|
0b3979707c09e058442c22d046b326ce244edda1 |
|
11-Jun-2012 |
Andrew Hsieh <andrewhsieh@google.com> |
Force emulator to quit if it's built w/o global register variable support Clang and llvm-gcc don't support global register variable (GRV) crucial to emulator (where a register is reserved to point to target architecture state for better code-gen). Clang and llvm-gcc are provided in recent Xcode to replace the original gcc with GRV support. MacOSX developers may accidentally install newer Xcode and break emulator. This CL allows emulator (and the rest of Android tree) to build but forces emulator to quit if it's built w/o GRV support. Developers build Android tree with clang or llvm-gcc can still get good system image, but they have to use emulators built the other way or from SDKs to run it. Related CL & bug entry: https://android-review.googlesource.com/#/c/33011 http://code.google.com/p/android/issues/detail?id=32577 Change-Id: Ia585dd7bf9783e2ff4c114b4f0ec20b89684ab57
/external/qemu/tcg/tcg.c
|
f1d9bf153726533acf659efd796aa484dfd0b412 |
|
11-May-2011 |
David 'Digit' Turner <digit@android.com> |
tcg: integrate upstream version Change-Id: Ifcdebc2e7179fbc64b46a9150e6dae62f86eba3c
/external/qemu/tcg/tcg.c
|
d9b6cb97a8a9e93f1bbe5351874b03f7faa81783 |
|
20-Oct-2010 |
David 'Digit' Turner <digit@android.com> |
Fix linux-x86_64 build. Fix various 64-bitness issues in the source code to make the --try-64 option work again on Linux. Note that the generated binary is not faster than its 32-bit variant when it comes to benchmarking the boot sequence. Change-Id: Iad248e033757d4cd25524a438a5dbe1cf3aca6cf
/external/qemu/tcg/tcg.c
|
6a9ef1773bf874dea493ff3861782a1e577b67dd |
|
09-Sep-2010 |
David Turner <digit@android.com> |
upstream: move timer management code to qemu-timer.c
/external/qemu/tcg/tcg.c
|
b9317727862dd690cc67bb51f71991c404f9e4f6 |
|
11-May-2010 |
David 'Digit' Turner <digit@android.com> |
Upstream: Integrate TCG changes, remove obsolete sources for unsupported targets. Change-Id: I2367d3ca13c1fb1dd8eaab734c7d3e826022b06a
/external/qemu/tcg/tcg.c
|
5389aa19033153c09556d1362a8b8a56abccb8f5 |
|
16-Feb-2010 |
Vladimir Chtchetkine <vchtchetkine@google.com> |
Merge memory checking from sandbox Change-id: Ibce845d0
/external/qemu/tcg/tcg.c
|
bcc6ae14820ddb24e2403d84b420ce61f371ae94 |
|
06-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
Finally fix ARMv7 NEON emulation. The real problem was the size of the static intermediate TCG opcode buffer. Due to its SIMD nature, a single Neon instruction can generate a very large number of corresponding TCG opcodes. Using lots of Neon instructions in a big looop like the one we have in our ARMv7-optimized memcpy did generate enough opcodes to overwrite the static gen_opc_buf buffer, resulting in overwrites into the following global buffer (gen_opparam_buf) corresponding to opcode parameters. The end result was generation of really broken host machine code, and completely unreliable emulation, including potential assertion failure in the liveness analysis pass. This patch does the following: - bumps the buffer size from 512 to 2048 - adds sanity checks that will abort the emulator if another similar overwrite is detected before machine code is generated. - remove the previous hack where we disabled the liveness analysis pass for ARMv7 Note that fixing the code generator to not use a static buffer is not trivial at this point, and that we much prefer to stay true to the upstream sources at the moment. Keep in mind that a previous patch also fixed a bug in the ARM->TCG translator (typo required changing a 0 into a 1) which affected Neon instructions too. I can't believe I just lost 2 weeks of my life on that bug :-(
/external/qemu/tcg/tcg.c
|
ddf49e53df97a349f42c733059165dc73c9907dc |
|
05-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
Workaround ARMv7 emulation issues. This patch is used to disable the code generator's liveness analysis pass when we emulate an ARMv7 CPU. This is required to properly run the dex preoptimization pass during the build of -user system images. Also includes: - a fix for a sad typo in target-arm/translate.c related to NEON instruction emulation - upstream improvements to the x86 and x86_64 backends to generate better goto branches at runtime - upstream fixes for 64-bit swap and shift operations in TCG After this patch is applied, re-enabling the ARMv7 memcpy should allow to run the dex preopt pass succesfully. Anything else is untested though. WE STILL NEED TO FIX THE CODE GENERATOR.
/external/qemu/tcg/tcg.c
|
5d8f37ad78fc66901af50c762029a501561f3b23 |
|
14-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
Merge upstream QEMU 10.0.50 into the Android source tree. This change integrates many changes from the upstream QEMU sources. Its main purpose is to enable correct ARMv6 and ARMv7 support to the Android emulator. Due to the nature of the upstream code base, this unfortunately also required changes to many other parts of the source. Note that to ensure easier integrations in the future, some source files and directories that have heavy Android-specific customization have been renamed with an -android suffix. The original files are still there for easier integration tracking, but *never* compiled. For example: net.c net-android.c qemu-char.c qemu-char-android.c slirp/ slirp-android/ etc... Tested on linux-x86, darwin-x86 and windows host machines.
/external/qemu/tcg/tcg.c
|
8b23a6c7e1aee255004dd19098d4c2462b61b849 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/external/qemu/tcg/tcg.c
|
f721e3ac031f892af46f255a47d7f54a91317b30 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/external/qemu/tcg/tcg.c
|
c27f813900a3c114562efbb8df1065e94766fc48 |
|
11-Feb-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@130745
/external/qemu/tcg/tcg.c
|