History log of /external/qemu/tcg/tcg.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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