| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| | |
hardware properties.
Merge commit '98f3c372f1725ceffe9933bdf93b93c05a7c1bfa' into eclair-mr2-plus-aosp
* commit '98f3c372f1725ceffe9933bdf93b93c05a7c1bfa':
Remove the disk partition size hardware properties.
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '7d0891efa38af61302b644a3c150fa6fa4367b42' into eclair-mr2
* commit '7d0891efa38af61302b644a3c150fa6fa4367b42':
Remove the disk partition size hardware properties.
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit 'def0e542c9cc004a7b83ff965103c34097c0960b' into eclair
* commit 'def0e542c9cc004a7b83ff965103c34097c0960b':
Remove the disk partition size hardware properties.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Also remove the error/abort message in case an AVD's image files
are larger than the default.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
emulator option. (do not merge)
Merge commit '5978ea5eba5fd0de206ae73f1e87b1b65479c0ae' into eclair-mr2-plus-aosp
* commit '5978ea5eba5fd0de206ae73f1e87b1b65479c0ae':
Fix the -trace emulator option. (do not merge)
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
option. (do not merge)
Merge commit 'a1d61942af9126b3525b1a91efed3b5b63c886cb' into eclair-mr2
* commit 'a1d61942af9126b3525b1a91efed3b5b63c886cb':
Fix the -trace emulator option. (do not merge)
|
| | |\ \
| |/ / /
| | | _
| | |
| | |
| | |
| | | |
Merge commit 'dba3a6fdf7ec051143f0d889721f56b2e28803f3' into eclair
* commit 'dba3a6fdf7ec051143f0d889721f56b2e28803f3':
Fix the -trace emulator option. (do not merge)
|
| | |
| | |
| | |
| | |
| | | |
A critical test in the execution loop was missed in the latest huge integration.
Also optimize slightly the basic-block start recording helper interface.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Merge commit 'a577fcadc0b365ee629aec313f57a65d54fe5d89' into eclair-mr2-plus-aosp
* commit 'a577fcadc0b365ee629aec313f57a65d54fe5d89':
Fix the -trace emulator option.
|
| |/
| |
| |
| |
| | |
A critical test in the execution loop was missed in the latest huge integration.
Also optimize slightly the basic-block start recording helper interface.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '73b9926fd43c9b5cd00319c5d117448bd1b31112' into eclair-plus-aosp
* commit '73b9926fd43c9b5cd00319c5d117448bd1b31112':
Fix upstream ARM emulation bug that broke singlestep mode.
|
| |\
| | |
| | |
| | |
| | | |
* changes:
Fix upstream ARM emulation bug that broke singlestep mode.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Merge commit '03e124409bd08e620898fbaf8ce27dde3afa1143' into eclair-plus-aosp
* commit '03e124409bd08e620898fbaf8ce27dde3afa1143':
Add a new hardware property: vm.heapSize
|
| | |
| | |
| | |
| | |
| | | |
Allows to control the maximum heap size of Dalvik applications when running
under emulation.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Merge commit '2ec4559513cf475d499435444dffe8566c3aaaf3' into eclair-plus-aosp
* commit '2ec4559513cf475d499435444dffe8566c3aaaf3':
Fix the build.
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
needed.
Merge commit '065242de51ba1e18387ce22a99eb091a859990f7' into eclair-plus-aosp
* commit '065242de51ba1e18387ce22a99eb091a859990f7':
Ensure android/avd/hw-config-defs.h is properly regenerated as needed.
|
| |/
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '48ed3267dfffedb65385b0a1f1462fdd46d049bb' into eclair-plus-aosp
* commit '48ed3267dfffedb65385b0a1f1462fdd46d049bb':
Do not use qemu_malloc() to allocate arrays.
|
| |
| |
| |
| |
| | |
This function will call abort() for zero-sized arrays. This is stupid so use
the Android-specific functions that return NULL instead.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'bcc6ae14820ddb24e2403d84b420ce61f371ae94' into eclair-plus-aosp
* commit 'bcc6ae14820ddb24e2403d84b420ce61f371ae94':
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 :-(
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'ddf49e53df97a349f42c733059165dc73c9907dc' into eclair-plus-aosp
* commit 'ddf49e53df97a349f42c733059165dc73c9907dc':
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.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'acbee3546b9a380a4eb33daef3dccfac87c56b0b' into eclair-plus-aosp
* commit 'acbee3546b9a380a4eb33daef3dccfac87c56b0b':
Move NAND size warning to debug log.
|
| |
| |
| |
| | |
Change-Id: I67152761977b330e3f4c1bbe3d8eb99e48e2e7e7
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'f9c07534fd5c3cf54592db4771ac27df3a13522d' into eclair-plus-aosp
* commit 'f9c07534fd5c3cf54592db4771ac27df3a13522d':
Increase Emulator system image to 72MB
|
| |
| |
| |
| |
| |
| |
| | |
This is required to run the SDK system image with the new assets
in multiple densities.
Change-Id: I4ab21a9c5ef554d1d8d63a32c3e88719e6d49253
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '2697a83bcf2b1d13c5f957e4c5ee64b774099b3f' into eclair-plus-aosp
* commit '2697a83bcf2b1d13c5f957e4c5ee64b774099b3f':
Fix free() bug in charmap code
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'c3e6bb48bc36d7e1b95bff7c870b0842eb8a452e' into eclair-plus-aosp
* commit 'c3e6bb48bc36d7e1b95bff7c870b0842eb8a452e':
Fix emulator crash on exit, due to invalid free() call.
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '52195e705c10ab94c2b842591bbd2fda60e13102' into eclair-plus-aosp
* commit '52195e705c10ab94c2b842591bbd2fda60e13102':
Fix build break caused by undefined min(a,b)
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '9085a28c14f369d231dbae099a690689179f428a' into eclair-plus-aosp
* commit '9085a28c14f369d231dbae099a690689179f428a':
Implementation for dynamic charmap option in emulator.
|
| |
| |
| |
| |
| | |
Created .kcm parser and added -charmap option to the emulator, so user
can specify keyboard layout for emulator session.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '238b4b0ef1a01afa66ef267dae4a96401ad386db' into eclair-plus-aosp
* commit '238b4b0ef1a01afa66ef267dae4a96401ad386db':
Fix ARMv7 emulation by disabling CPU alignment exceptions
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '060749410208cd5a0e25faacdd6a5ef1ae8cf6d5' into eclair-plus-aosp
* commit '060749410208cd5a0e25faacdd6a5ef1ae8cf6d5':
Allow skins to provide a "dpad-rotation" field for each layout.
|
| |\
| | |
| | |
| | |
| | | |
* changes:
Allow skins to provide a "dpad-rotation" field for each layout.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
previous integrate.
Merge commit '162f35e47d6cc696134434f3aab4a01ae3d67420' into eclair-plus-aosp
* commit '162f35e47d6cc696134434f3aab4a01ae3d67420':
Restore the -fdpair option implementation that was lost in the previous integrate.
|
| |/
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'b489a9b96d5a024e1514258807f5d65ba1c3fb49' into eclair-plus-aosp
* commit 'b489a9b96d5a024e1514258807f5d65ba1c3fb49':
Enable sockets.c to compile with GCC 4.4 headers
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \ |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
* changes:
Added option to build link with libutil
|