| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |\ \ \ \ \ \ \ \
| | | |/ / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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.
|
|\ \ \ \ \ \ \ \ \
| |/ / / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
ours) Fix the -trace emulator option. (do not merge)
Merge commit '406ceb6b1028e255991c80c122c628783b93980f'
* commit '406ceb6b1028e255991c80c122c628783b93980f':
Fix the -trace emulator option. (do not merge)
|
| |\ \ \ \ \ \ \ \
| | |/ / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
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 '8be07eac7c50b3ad6a01b867aee887a1943589b6'
* commit '8be07eac7c50b3ad6a01b867aee887a1943589b6':
Fix the -trace emulator option.
|
| |\ \ \ \ \ \
| | |/ / / / /
| | | | / / /
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | | |
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 'c00d702076d1c3f5d0c33f522d0743593c0c3cd4'
* commit 'c00d702076d1c3f5d0c33f522d0743593c0c3cd4':
|
| |\ \ \ \
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '73b9926fd43c9b5cd00319c5d117448bd1b31112' into eclair-plus-aosp
* commit '73b9926fd43c9b5cd00319c5d117448bd1b31112':
Fix upstream ARM emulation bug that broke singlestep mode.
|
|\ \ \ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '790b7534b5a0dea8040fa0c10f1e376db26a7bf8'
* commit '790b7534b5a0dea8040fa0c10f1e376db26a7bf8':
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Merge commit '03e124409bd08e620898fbaf8ce27dde3afa1143' into eclair-plus-aosp
* commit '03e124409bd08e620898fbaf8ce27dde3afa1143':
Add a new hardware property: vm.heapSize
|
|\ \ \ \ \ \
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Merge commit '6555d90a04dc8a43acb6e43d0b196c97758ffb69'
* commit '6555d90a04dc8a43acb6e43d0b196c97758ffb69':
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Merge commit '2ec4559513cf475d499435444dffe8566c3aaaf3' into eclair-plus-aosp
* commit '2ec4559513cf475d499435444dffe8566c3aaaf3':
Fix the build.
|
|\ \ \ \ \ \ \
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
regenerated as needed.
Merge commit '1f2d8d3650062aa683aff2a42270724c1a4ba064'
* commit '1f2d8d3650062aa683aff2a42270724c1a4ba064':
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
needed.
Merge commit '065242de51ba1e18387ce22a99eb091a859990f7' into eclair-plus-aosp
* commit '065242de51ba1e18387ce22a99eb091a859990f7':
Ensure android/avd/hw-config-defs.h is properly regenerated as needed.
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Merge commit 'b10f014a2717dcf6641e502d152b20461831b85a'
* commit 'b10f014a2717dcf6641e502d152b20461831b85a':
|
| |\ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Merge commit '48ed3267dfffedb65385b0a1f1462fdd46d049bb' into eclair-plus-aosp
* commit '48ed3267dfffedb65385b0a1f1462fdd46d049bb':
Do not use qemu_malloc() to allocate arrays.
|
|\ \ \ \ \ \ \ \ \
| |/ / / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Merge commit '947c214ab0a721fc1cd15d5b582c4baad2d26daa'
* commit '947c214ab0a721fc1cd15d5b582c4baad2d26daa':
|
| |\ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Merge commit 'bcc6ae14820ddb24e2403d84b420ce61f371ae94' into eclair-plus-aosp
* commit 'bcc6ae14820ddb24e2403d84b420ce61f371ae94':
Finally fix ARMv7 NEON emulation.
|
|\ \ \ \ \ \ \ \ \ \
| |/ / / / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Merge commit 'fc11951fdedd724620eaf6f869db8572ba0c93cb'
* commit 'fc11951fdedd724620eaf6f869db8572ba0c93cb':
|
| |\ \ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Merge commit 'ddf49e53df97a349f42c733059165dc73c9907dc' into eclair-plus-aosp
* commit 'ddf49e53df97a349f42c733059165dc73c9907dc':
Workaround ARMv7 emulation issues.
|
|\ \ \ \ \ \ \ \ \ \ \
| |/ / / / / / / / / /
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Merge commit '8137654a41972a8713b74857d7a81050f84485f3'
* commit '8137654a41972a8713b74857d7a81050f84485f3':
|
| |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Merge commit 'acbee3546b9a380a4eb33daef3dccfac87c56b0b' into eclair-plus-aosp
* commit 'acbee3546b9a380a4eb33daef3dccfac87c56b0b':
Move NAND size warning to debug log.
|
|\ \ \ \ \ \ \ \ \ \ \ \
| | |_|_|_|_|_|_|_|/ / /
| |/| | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Merge commit '73b9926fd43c9b5cd00319c5d117448bd1b31112'
* 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'
* 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'
* commit '2ec4559513cf475d499435444dffe8566c3aaaf3':
Fix the build.
|
| | |_|_|_|_|/ / /
| |/| | | | | | | |
|
|\ \ \ \ \ \ \ \ \
| |/ / / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
needed.
Merge commit '065242de51ba1e18387ce22a99eb091a859990f7'
* 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'
* 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'
* 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'
* 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'
* 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.
|
| | | | |
|