aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* am 98f3c372: am 7d0891ef: am def0e542: Remove the disk partition size ↵David 'Digit' Turner2009-10-294-55/+4
|\ | | | | | | | | | | | | | | | | hardware properties. Merge commit '98f3c372f1725ceffe9933bdf93b93c05a7c1bfa' into eclair-mr2-plus-aosp * commit '98f3c372f1725ceffe9933bdf93b93c05a7c1bfa': Remove the disk partition size hardware properties.
| * am 7d0891ef: am def0e542: Remove the disk partition size hardware properties.David 'Digit' Turner2009-10-294-55/+4
| |\ | | | | | | | | | | | | | | | | | | Merge commit '7d0891efa38af61302b644a3c150fa6fa4367b42' into eclair-mr2 * commit '7d0891efa38af61302b644a3c150fa6fa4367b42': Remove the disk partition size hardware properties.
| | * am def0e542: Remove the disk partition size hardware properties.David 'Digit' Turner2009-10-294-55/+4
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Merge commit 'def0e542c9cc004a7b83ff965103c34097c0960b' into eclair * commit 'def0e542c9cc004a7b83ff965103c34097c0960b': Remove the disk partition size hardware properties.
| | | * Remove the disk partition size hardware properties.David 'Digit' Turner2009-10-294-55/+4
| | | | | | | | | | | | | | | | | | | | Also remove the error/abort message in case an AVD's image files are larger than the default.
* | | | am 5978ea5e: am a1d61942: (-s ours) am dba3a6fd: (-s ours) Fix the -trace ↵David 'Digit' Turner2009-10-160-0/+0
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | emulator option. (do not merge) Merge commit '5978ea5eba5fd0de206ae73f1e87b1b65479c0ae' into eclair-mr2-plus-aosp * commit '5978ea5eba5fd0de206ae73f1e87b1b65479c0ae': Fix the -trace emulator option. (do not merge)
| * | | am a1d61942: (-s ours) am dba3a6fd: (-s ours) Fix the -trace emulator ↵David 'Digit' Turner2009-10-160-0/+0
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | option. (do not merge) Merge commit 'a1d61942af9126b3525b1a91efed3b5b63c886cb' into eclair-mr2 * commit 'a1d61942af9126b3525b1a91efed3b5b63c886cb': Fix the -trace emulator option. (do not merge)
| | * | am dba3a6fd: (-s ours) Fix the -trace emulator option. (do not merge)David 'Digit' Turner2009-10-160-0/+0
| | |\ \ | |/ / / | | | _ | | | | | | | | | | | | Merge commit 'dba3a6fdf7ec051143f0d889721f56b2e28803f3' into eclair * commit 'dba3a6fdf7ec051143f0d889721f56b2e28803f3': Fix the -trace emulator option. (do not merge)
| | * Fix the -trace emulator option. (do not merge)David 'Digit' Turner2009-10-165-25/+63
| | | | | | | | | | | | | | | A critical test in the execution loop was missed in the latest huge integration. Also optimize slightly the basic-block start recording helper interface.
* | | am a577fcad: Fix the -trace emulator option.David 'Digit' Turner2009-10-165-25/+63
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit 'a577fcadc0b365ee629aec313f57a65d54fe5d89' into eclair-mr2-plus-aosp * commit 'a577fcadc0b365ee629aec313f57a65d54fe5d89': Fix the -trace emulator option.
| * | Fix the -trace emulator option.David 'Digit' Turner2009-10-155-25/+63
| |/ | | | | | | | | A critical test in the execution loop was missed in the latest huge integration. Also optimize slightly the basic-block start recording helper interface.
* | am 73b9926f: Merge change If4f13b68 into eclairDavid 'Digit' Turner2009-10-092-15/+10
|\ \ | |/ | | | | | | | | | | Merge commit '73b9926fd43c9b5cd00319c5d117448bd1b31112' into eclair-plus-aosp * commit '73b9926fd43c9b5cd00319c5d117448bd1b31112': Fix upstream ARM emulation bug that broke singlestep mode.
| * Merge change If4f13b68 into eclairAndroid (Google) Code Review2009-10-092-15/+10
| |\ | | | | | | | | | | | | * changes: Fix upstream ARM emulation bug that broke singlestep mode.
| | * Fix upstream ARM emulation bug that broke singlestep mode.David 'Digit' Turner2009-10-092-15/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a really bad bug in the Thumb/Thumb2 ARM emulation related to conditional instructions execution. The issue was that the previous implementation did break badly if a page fault occured during the conditional instruction's emulation. Giving an example if probably the best way to demonstrate this. Consider the following two instructions: itt eq streq r0,[r4, #0] These two instructions mean, respectively: - If the Z flag is set, execute the next instruction. Otherwise ignore it - Store the value of r0 at the address pointed to by r4 In single-step mode (used when debugging the emulator), each instruction is separately JIT-ed and executed in a different pass. The 'condexec_bits' field of the CPU state if used to store flags corresponding to the conditional execution of up to 4 next instructions. When the first instruction is executed, it simply sets 'condexec_bits' to a specific value (4). When the second instruction is executed, things get slightly bit more funky because what happened was the following: - the JIT-ed code started by clearing the 'condexec_bits' right at the start of its sequence (a comment says "to avoid complications trying to do it at the end of the block", famous last words...) - a conditional test, based on the current value of the Z flag was added to skip over the rest of the instruction sequence - the store itself is implemented through a call to the __stl_mmu helper function. The thing is that __stl_mmu may implement a *page fault* (i.e. when the address in r4 hasn't been commited to memory yet) which requires a switch to kernel mode (to populate the page), then going back to the instruction's execution. This is done in the current implementation by re-running the JIT-er for the same instruction, however, since 'condexec_bits' was already cleared to 0, the new JIT-ed code sequence doesn't have the conditional test to skip over the store. The conditional instruction has been transformed into a non-conditional one due to the page fault ! This results in either bad behaviour or, even a crash in the emulator. The patch fixes the clearing of condexec_bits to happen as it should, i.e. only when execution has really cleared it. This is preliminary work to fix the -trace option. Also, disable the IO Thread when running the standalone emulator. This makes debugging much easier since everything happens in a single thread.
* | | am 03e12440: Add a new hardware property: vm.heapSizeDavid 'Digit' Turner2009-10-083-0/+23
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit '03e124409bd08e620898fbaf8ce27dde3afa1143' into eclair-plus-aosp * commit '03e124409bd08e620898fbaf8ce27dde3afa1143': Add a new hardware property: vm.heapSize
| * | Add a new hardware property: vm.heapSizeDavid 'Digit' Turner2009-10-073-0/+23
| | | | | | | | | | | | | | | Allows to control the maximum heap size of Dalvik applications when running under emulation.
* | | am 2ec45595: Fix the build.David 'Digit' Turner2009-10-071-4/+4
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit '2ec4559513cf475d499435444dffe8566c3aaaf3' into eclair-plus-aosp * commit '2ec4559513cf475d499435444dffe8566c3aaaf3': Fix the build.
| * | Fix the build.David 'Digit' Turner2009-10-071-4/+4
| | |
* | | am 065242de: Ensure android/avd/hw-config-defs.h is properly regenerated as ↵David 'Digit' Turner2009-10-073-12/+37
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | needed. Merge commit '065242de51ba1e18387ce22a99eb091a859990f7' into eclair-plus-aosp * commit '065242de51ba1e18387ce22a99eb091a859990f7': Ensure android/avd/hw-config-defs.h is properly regenerated as needed.
| * | Ensure android/avd/hw-config-defs.h is properly regenerated as needed.David 'Digit' Turner2009-10-073-12/+37
| |/ | | | | | | | | | | | | | | This modifies the emulator's build system to ensure that the file at android/avd/hw-config-defs.h is regenerated automatically each time that android/avd/hardware-properties.ini is itself changed. Tested with both the Android build system, and the standalone one.
* | am 48ed3267: Do not use qemu_malloc() to allocate arrays.David 'Digit' Turner2009-10-071-5/+8
|\ \ | |/ | | | | | | | | | | Merge commit '48ed3267dfffedb65385b0a1f1462fdd46d049bb' into eclair-plus-aosp * commit '48ed3267dfffedb65385b0a1f1462fdd46d049bb': Do not use qemu_malloc() to allocate arrays.
| * Do not use qemu_malloc() to allocate arrays.David 'Digit' Turner2009-10-061-5/+8
| | | | | | | | | | This function will call abort() for zero-sized arrays. This is stupid so use the Android-specific functions that return NULL instead.
* | am bcc6ae14: Finally fix ARMv7 NEON emulation.David 'Digit' Turner2009-10-074-24/+13
|\ \ | |/ | | | | | | | | | | Merge commit 'bcc6ae14820ddb24e2403d84b420ce61f371ae94' into eclair-plus-aosp * commit 'bcc6ae14820ddb24e2403d84b420ce61f371ae94': Finally fix ARMv7 NEON emulation.
| * Finally fix ARMv7 NEON emulation.David 'Digit' Turner2009-10-064-24/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 :-(
* | am ddf49e53: Workaround ARMv7 emulation issues.David 'Digit' Turner2009-10-077-31/+86
|\ \ | |/ | | | | | | | | | | Merge commit 'ddf49e53df97a349f42c733059165dc73c9907dc' into eclair-plus-aosp * commit 'ddf49e53df97a349f42c733059165dc73c9907dc': Workaround ARMv7 emulation issues.
| * Workaround ARMv7 emulation issues.David 'Digit' Turner2009-10-057-31/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | am acbee354: Move NAND size warning to debug log.Xavier Ducrohet2009-10-071-3/+3
|\ \ | |/ | | | | | | | | | | Merge commit 'acbee3546b9a380a4eb33daef3dccfac87c56b0b' into eclair-plus-aosp * commit 'acbee3546b9a380a4eb33daef3dccfac87c56b0b': Move NAND size warning to debug log.
| * Move NAND size warning to debug log.Xavier Ducrohet2009-10-011-3/+3
| | | | | | | | Change-Id: I67152761977b330e3f4c1bbe3d8eb99e48e2e7e7
* | am f9c07534: Increase Emulator system image to 72MBXavier Ducrohet2009-09-302-2/+2
|\ \ | |/ | | | | | | | | | | Merge commit 'f9c07534fd5c3cf54592db4771ac27df3a13522d' into eclair-plus-aosp * commit 'f9c07534fd5c3cf54592db4771ac27df3a13522d': Increase Emulator system image to 72MB
| * Increase Emulator system image to 72MBXavier Ducrohet2009-09-302-2/+2
| | | | | | | | | | | | | | This is required to run the SDK system image with the new assets in multiple densities. Change-Id: I4ab21a9c5ef554d1d8d63a32c3e88719e6d49253
* | am 2697a83b: Fix free() bug in charmap codevchtchetkine2009-09-251-0/+9
|\ \ | |/ | | | | | | | | | | Merge commit '2697a83bcf2b1d13c5f957e4c5ee64b774099b3f' into eclair-plus-aosp * commit '2697a83bcf2b1d13c5f957e4c5ee64b774099b3f': Fix free() bug in charmap code
| * Fix free() bug in charmap codevchtchetkine2009-09-251-0/+9
| |
* | am c3e6bb48: Fix emulator crash on exit, due to invalid free() call.David 'Digit' Turner2009-09-232-13/+1
|\ \ | |/ | | | | | | | | | | Merge commit 'c3e6bb48bc36d7e1b95bff7c870b0842eb8a452e' into eclair-plus-aosp * commit 'c3e6bb48bc36d7e1b95bff7c870b0842eb8a452e': Fix emulator crash on exit, due to invalid free() call.
| * Fix emulator crash on exit, due to invalid free() call.David 'Digit' Turner2009-09-232-13/+1
| |
* | am 52195e70: Fix build break caused by undefined min(a,b)vchtchetkine2009-09-211-1/+4
|\ \ | |/ | | | | | | | | | | Merge commit '52195e705c10ab94c2b842591bbd2fda60e13102' into eclair-plus-aosp * commit '52195e705c10ab94c2b842591bbd2fda60e13102': Fix build break caused by undefined min(a,b)
| * Fix build break caused by undefined min(a,b)vchtchetkine2009-09-211-1/+4
| |
* | am 9085a28c: Implementation for dynamic charmap option in emulator.vchtchetkine2009-09-218-39/+713
|\ \ | |/ | | | | | | | | | | Merge commit '9085a28c14f369d231dbae099a690689179f428a' into eclair-plus-aosp * commit '9085a28c14f369d231dbae099a690689179f428a': Implementation for dynamic charmap option in emulator.
| * Implementation for dynamic charmap option in emulator.vchtchetkine2009-09-218-39/+713
| | | | | | | | | | Created .kcm parser and added -charmap option to the emulator, so user can specify keyboard layout for emulator session.
* | am 238b4b0e: Fix ARMv7 emulation by disabling CPU alignment exceptionsDavid 'Digit' Turner2009-09-202-3/+26
|\ \ | |/ | | | | | | | | | | Merge commit '238b4b0ef1a01afa66ef267dae4a96401ad386db' into eclair-plus-aosp * commit '238b4b0ef1a01afa66ef267dae4a96401ad386db': Fix ARMv7 emulation by disabling CPU alignment exceptions
| * Fix ARMv7 emulation by disabling CPU alignment exceptionsDavid 'Digit' Turner2009-09-202-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable alignment CPU exceptions to be able to boot an ARMv7 system image. This is because 4.4.0 emits a machine code sequence that stores an 8-bytes double on a 4-byte aligned address on the stack in the implementation of cvt() in the C library (see the disassembly for bionic/libc/stdio/vfprintf.c). It is uncertain that this is a compiler bug at this point, but the upstream QEMU sources don't have alignment exceptions enabled for any ARM target anyway. Also, add a check to force CPU emulation to "cortex-a8" if the kernel file name ends in "-armv7". This is a poor man's approach to hardware configuration that will be replaced by a more sophisticated solution in the future. Right now, we just want to be able to build -user system images with the dex preopt pass running in the emulator with the minimum amount of fuss.
* | am 06074941: Merge change 25638 into eclairDavid 'Digit' Turner2009-09-199-128/+181
|\ \ | |/ | | | | | | | | | | Merge commit '060749410208cd5a0e25faacdd6a5ef1ae8cf6d5' into eclair-plus-aosp * commit '060749410208cd5a0e25faacdd6a5ef1ae8cf6d5': Allow skins to provide a "dpad-rotation" field for each layout.
| * Merge change 25638 into eclairAndroid (Google) Code Review2009-09-199-128/+181
| |\ | | | | | | | | | | | | * changes: Allow skins to provide a "dpad-rotation" field for each layout.
| | * Allow skins to provide a "dpad-rotation" field for each layout.David 'Digit' Turner2009-09-199-128/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used to deal with the fact that the framework *always* assumes that the physical DPad is rotated in landscaped mode, while the default skin no longer does that. NOTE: tested on old skin files for backwards compatibility. (Upcoming skin fixes coming in another patch)
* | | am 162f35e4: Restore the -fdpair option implementation that was lost in the ↵David 'Digit' Turner2009-09-181-0/+22
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | previous integrate. Merge commit '162f35e47d6cc696134434f3aab4a01ae3d67420' into eclair-plus-aosp * commit '162f35e47d6cc696134434f3aab4a01ae3d67420': Restore the -fdpair option implementation that was lost in the previous integrate.
| * | Restore the -fdpair option implementation that was lost in the previous ↵David 'Digit' Turner2009-09-181-0/+22
| |/ | | | | | | | | | | | | | | integrate. This is necessary to fix the dexpreopt pass of -user builds. Note that this should only fix ARMv5TE builds, since we still have other (different) issues with ARMv7 emulation at the moment.
* | am b489a9b9: Enable sockets.c to compile with GCC 4.4 headersJack Palevich2009-09-151-1/+8
|\ \ | |/ | | | | | | | | | | Merge commit 'b489a9b96d5a024e1514258807f5d65ba1c3fb49' into eclair-plus-aosp * commit 'b489a9b96d5a024e1514258807f5d65ba1c3fb49': Enable sockets.c to compile with GCC 4.4 headers
| * Enable sockets.c to compile with GCC 4.4 headersJack Palevich2009-09-151-1/+8
| | | | | | | | | | | | | | | | | | The GCC 4.4 version of netdb.h moves EAI_NODATA behind a __USE_GNU define, because that feature is not part of the POSIX standard for that header. In order to compile sockets.c without error under GCC 4.4 we explicitly define __USE_GNU and explicitly include netdb.h.
* | resolved conflicts for merge of 5d8f37ad to eclair-plus-aospJean-Baptiste Queru2009-09-15370-25370/+86615
|\ \ | |/
| * Merge upstream QEMU 10.0.50 into the Android source tree.David 'Digit' Turner2009-09-14370-25366/+86615
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | merge from open-source masterJean-Baptiste Queru2009-09-157-2/+166
|\ \
| * \ Merge change 11465Android Code Review2009-09-141-0/+4
| |\ \ | | | | | | | | | | | | | | | | * changes: Added option to build link with libutil