aboutsummaryrefslogtreecommitdiffstats
path: root/tcg
Commit message (Collapse)AuthorAgeFilesLines
* Force emulator to quit if it's built w/o global register variable supportAndrew Hsieh2012-06-121-0/+9
| | | | | | | | | | | | | | | | | | | 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
* tcg: integrate upstream versionDavid 'Digit' Turner2011-06-0119-2195/+4312
| | | | Change-Id: Ifcdebc2e7179fbc64b46a9150e6dae62f86eba3c
* Upstream: Integrate TCG changes for remaining archesMarcus Comstedt2011-01-2710-0/+8433
| | | | | | | | Commit b93177278 integrated upstreams TCG changes for i386 and x86_64. This commit pulls the equivalent changes for the remaining arches. Change-Id: I88a8a0e6124de841bbccba5840b19dd5612a56ed
* Fix linux-x86_64 build.David 'Digit' Turner2010-10-211-4/+4
| | | | | | | | | 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
* upstream: move timer management code to qemu-timer.cDavid Turner2010-09-131-1/+2
|
* Upstream: Integrate TCG changes, remove obsolete sources for unsupported ↵David 'Digit' Turner2010-05-1118-7590/+401
| | | | | | targets. Change-Id: I2367d3ca13c1fb1dd8eaab734c7d3e826022b06a
* Upstream: Replace sys-queue.h with qemu-queue.hDavid 'Digit' Turner2010-05-102-68/+13
| | | | Change-Id: I5c51f54a7fe2ea702420429bbf0c789ed6d8c534
* Upstream: HOST_WORDS_ALIGNED -> WORDS_ALIGNEDDavid 'Digit' Turner2010-05-101-1/+1
| | | | Change-Id: Ica9022695d83fb48a8c25fdb1e1f0dc1c63747ff
* Upstream: Use CONFIG_BSD instead of _BSD and HOST_BSDDavid 'Digit' Turner2010-05-102-1/+5
| | | | | Also fix OS X build, which failed with a link error. Change-Id: Idd63f25dc1f46ea66da5727c7577def34f048c3c
* Merge memory checking from sandboxVladimir Chtchetkine2010-02-181-64/+97
| | | | Change-id: Ibce845d0
* Finally fix ARMv7 NEON emulation.David 'Digit' Turner2009-10-062-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 :-(
* Workaround ARMv7 emulation issues.David 'Digit' Turner2009-10-055-30/+75
| | | | | | | | | | | | | | 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.
* Merge upstream QEMU 10.0.50 into the Android source tree.David 'Digit' Turner2009-09-1422-1590/+1940
| | | | | | | | | | | | | | | | | | | 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.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-0323-0/+15377
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-0323-15377/+0
|
* auto import from //branches/cupcake/...@130745The Android Open Source Project2009-02-1023-0/+15377