c3b504f4c434a24513336fba2c6dff2d9ff43f28 |
04-Jul-2014 |
David 'Digit' Turner <digit@google.com> |
Fix emulation. The previous patch removed the memcheck feature, but a subtle bug prevented emulation from working correctly. Fix this. Change-Id: I68d16b1d4c36b2c538376fc059f068775d4201be
ranslate.c
|
0e5ff1bd3073e3847ac8400ba46814878beb8605 |
04-Jul-2014 |
David 'Digit' Turner <digit@google.com> |
memcheck: Remove feature entirely This patch removes the memcheck feature from the Android emulator code base. This is for several reasons: - Supporting the feature impacts many QEMU-specific emulation files in subtle ways, that make it difficult to refactor this code to integrate upstream changes. - The feature only works for ARM (32-bit), has no unit tests, and generates massive amounts of false positive messages coming from the platform. - Barely anyone uses it. This feature might make a comeback in the future, but this will be under a different life-form that will have adapted to the new state of the code. + As a bonus, fix the build! Change-Id: Idd19a3bc7923379cb1e82850f14499549b6a991b
elper-android.c
elper-android.h
elper.h
ranslate-android.h
ranslate.c
|
86b1fb06ee6ef53d8961ce96343ba4aa37518840 |
21-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: Upgrade to upstream version. This switches the full TCG implementation to the upstream version from the following upstream commit: 1a8e80d7e82aa385ad887dba5d039e399a18264b Note that this requires completely reqwriting the softmmu_template.h declarations to adapt to the new world order where all ld/st helpers now accepts a CPUArchState* value as their first parameter. + This also gets rid of the REGPARM macro, which means that on i386, parameters are now passed on the stack instead of using registers. As surprising as it is, this doesn't seem to affect emulation performance in significant ways when starting the emulator with -force-32bit, compared to the latest SDK emulator binary. This may be due to the improved binary translator. Note that this doesn't switch the emulation to use the new MemoryRegion API, so there are still a few minor differences with upstream softmmu_*.h headers. The target-*/ sources have been minimally modified to accomodate for the changes, and everything seems to work. However, not that CONFIG_ANDROID_MEMCHECK_MMU hasn't been tested yet. + get rid of obsolete softmmu_outside_jit.c NOTE: There are two important differences with the upstream sources: - An '#undef small' in tcg.c used to build the Windows binaries with mingw32 on Linux. - The declaration of cc_compute_all and cc_compute_c helpers in target-i386/helper.h use TCG_CALL_NO_SE instead of TCG_CALL_NO_SE_RWG. Otherwise, it's impossible to boot an x86 system image properly. Change-Id: I6ed5c58f237493d29b1cefaff3e0db6f58977fbf
p_helper.c
ranslate.c
|
0b1a84571c04503c5fb1ac012483f03454e2b140 |
25-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
gdb: CPUOldState -> CpuState. Change parameter type and modify callers. Change-Id: Iafcfe694279f715ed0b0fd92a55dfe884d0330e5
rm-semi.c
elper.c
|
aaef275467ba13162d52ef6f690fd97f9733eb58 |
25-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
cpu_memory_rw_debug: Use CPUState instead of CPUOldState Change-Id: I3c3440d6d13380dcde18260c54ebbba6e8616d6d
rm-semi.c
|
bf7a22f3a6c38d359d2e933dec4706d1c7375f0a |
25-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Move cpu_xxx functions to qom/cpu.h This patch moves a few CPU-releated function declarations to include/qom/cpu.h, while changing their signature to take a CPUState instead of a CPUOldState. Change-Id: I5f09b522dc755be334973a27f58b6704fbccc4c6
rm-semi.c
elper.c
ranslate.c
|
fed223d2bab55eda155e3463b9cb6966e69dd73c |
24-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Move singlestep_enabled to CPUState. The previous patch forgot to move this field from CPU_COMMON to CPUState, so do it here. Change-Id: I71ed4605c939eb6c23d3e70b08ea89e59842cdd0
ranslate.c
|
6657678c3d86395084f6a699e73614195f06c445 |
24-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Introduce CPUState. This patch splits the definitions previously found in CPUArchState, to place some of them in a common data structure called CPUState, to mirror upstream. Note that upstream also makes CPUState a complete QOM object that derives from DeviceState / DeviceClass, but this patch doesn't do that. That's why the target-*/cpu-qom.h files, as well as include/qom/cpu.h are not the real ones from upstream yet. Future patches will get rid of CPUOldState, which is currently used as an alias for CPUArchState, but will be replaced entirely by CPUState, requiring changing the signature of many functions to match upstream. QOM-ification will probably happen after that, but may require a few more patches due to layering / coupling issues. Change-Id: Ifc33f8abe2aa80b20da13f5c83c109e37aff7e11 Conflicts: cputlb.c target-arm/op_helper.c target-i386/op_helper.c target-mips/op_helper.c
pu-qom.h
pu.h
elper.c
p_helper.c
om-cpu.h
|
e6125dec823c2725c6b494378a7acd5b6c33aa4f |
04-Apr-2014 |
David 'Digit' Turner <digit@google.com> |
softmmu: Pass env to load/store routines. Also define __ldl_mmu et al. in cputlb.c because the TCG-generated code still calls these directly. Note that these will go once we actually upgrade TCG to a more recent version. Change-Id: Id1983a9f16f64a28c089e458c79f74ac065bf66c
p_helper.c
|
0b4c9e8457959b01cd26f60ef214e9b5b7a297d4 |
03-Apr-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Get rid of dyngen-exec.h usage. This patch modifies the helpers for the ARM target to ensure that the CPUARMState, when needed, is always passed explicitly as the first parameter, instead of relying on a global register variable. Change-Id: Ic6c588be92bd3eef3b2a2063992028bce44c8a23
elper.h
p_addsub.h
p_helper.c
ranslate.c
|
9eef50a878ea9af93eaf0e161a495704c468a2d4 |
03-Apr-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Update neon_helper.c to upstream. Change-Id: I2a7353a6694d2098e7340eb0a669340e6df66af6
eon_helper.c
|
c4e7d8228a1f893b3a5a639da5b99b53720224bd |
03-Apr-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Remove AREG0 usage from IWMMX helpers. This also gets us to the upstream version of iwmmxt_helper.c Change-Id: Icb94de2e69eed7177266f0c22c4e761ae8ba964c
elper.h
wmmxt_helper.c
ranslate.c
|
eb3bc46a1a876f279b06d7372bf5866fbcf4e8f8 |
21-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
exec/softmmu*: Misc fixes. Upstream 2050396801ca0c8359364d61eaadece951006057 Upstream b065927a02cbbaca032ed20d3039baca0914165c Change-Id: I5b484ed026f8755804d443d45be2e96010cef60a
p_helper.c
|
beefcee15f800fa4875ea5470f10f0ce5e18e67c |
20-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Minor updates Upstream 0ab06d8347bd825090e220167da017d67112e846 Upstream 7807eed932dbb88fa320ddba99bff45ba96319c6 Upstream 906879a98fa31232f494fece3c5cb3c2baaf8c3c Change-Id: I4924b62ddc8873e9bd2e97143fc7457d3d214c2e
pu.h
elper.c
|
0d8b235c0c6c02de86a4e7415d574175b4518ff0 |
20-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Large page TLB flush + Remove unused is_softmmu parameter. Upstream d4c430a80f000d722bb70287af4d4c184a8d7006 Upstream 97b348e7d221c94ddde609346407bd2cd6f85044 Change-Id: I7ccc6a8ffc040f91a58a3206d95417d22001b67b
pu.h
elper.c
p_helper.c
|
a889d35e76c8ea18caf70c738fd585c64b857369 |
20-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-*/exec.h cleanup This patch gets rid of target-*/exec.h headers by moving the corresponding definitions either inside target-*/op_helper.c, or dyngen-exec.h for the global register-based 'env' value, which will be removed in future patches. Upstream 3e4571724fb92c77de81d8b54957de8232be6706 Change-Id: I513d5c27c01c6dc727c1ce6fb7f3a7a5dc03800f
xec.h
wmmxt_helper.c
p_helper.c
|
9e279126ca80427cd0c7485ca640bfc43b04b3d7 |
20-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-i386: Move cpu_has_work to cpu.h + Remove obsolete cpu_halted() function. Change-Id: I9d723919b085137c77fd57b9571f7257bb41f159
xec.h
|
cf2ea59d58aa0a4eefd75827ce9c9cc6b718f65b |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: UNDEF on a VCVTT/VCVTB UNPREDICTABLE to avoid TCG assert Upstream 7ec7f28019dff4ab00ff907f7b4e7261da593279 Change-Id: I18ee6240766354a932f29388853beaa3cf5f0aab
ranslate.c
|
97c98d3448da9d3fad00545063fb6cd2d2980acc |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Handle UNDEF and UNPREDICTABLE cases for VLDM, VSTM Upstream 31b13080462de35343e0b3eca868e7868fcb78f7 Change-Id: I2567744476fadde705ba77e7bfdaa45cedea7155
ranslate.c
|
60148dcfccd177ca1dd47fe5292584b44a70df87 |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Support v6 barriers in linux-user mode Upstream 4ec648dd6ed97182d123e0df5bc5012c734aa858 Change-Id: I94d10fc296167f3392fde7bdfbb88782159bf2f6
ranslate.c
|
1811e78e6a3385ccb9499f601b0114e92d5421cf |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Mark 1136r1 as a v6K core Upstream e961d129e1712b64e561ea16fe124933115ee477 Change-Id: I7b6dfa69fd90a04899a7a721c31d32d5d0a634d6
pu.h
elper.c
|
d440a7e03b2e2f153b3d8d72ff3bf4a7d96fa77d |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Fix BASEPRI, BASEPRI_MAX, and FAULTMASK access Upstream 82845826e89fdc02f6f000fca5d5019ec9be4ab3 Change-Id: Ia2c57e6298f03a73a402d67015e626a6ec22ecab
elper.c
|
d9ac10a8a8351cb852c660e77dbe361365d3a8a7 |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Minimal implementation of performance counters Upstream 74594c9d813e4d14e9c16cc71824d8905bedc19d Change-Id: I12de83c519f3170514771c926ea88102009c26bf
pu.h
elper.c
achine.c
ranslate.c
|
3d323dda130b16c690a78f08b7f766becb84914f |
19-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Remove global env in neon_helper.c Upstream 02da0b2d7152f736b1fba95902f55db4fd7ea3a5 Change-Id: Icd74332c0e65a89110bc73471b4cec6ccfec5d61
elper.h
eon_helper.c
ranslate.c
|
16998987568fa923e463d41735dcf5c1b28220b9 |
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Pass fp status pointer explicitly to neon fp helpers Upstream 5aaebd13da29a7157b757590284664dc42ea6a69 Upstream ae1857eca22b58d430941730bd097e95a484652c Upstream aa47cfdd178d8ea96b6e2f550742ddbb445fdacb Change-Id: I4a4eac8e4596f5faffb8ee3bcf39f8ef89590824
elper.c
elper.h
eon_helper.c
ranslate.c
|
44f815d624819c821e4baf588ee29837f649f4a6 |
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
arm: Add const attribute to some arm_boot_info pointers Upstream 462a8bc6468912b79629f20f18798558342ce315 Change-Id: I772f11dd9283780b6779db9d433921b2db910850
pu.h
|
93949dc9a6f5a702db214d19080397a9e94b45f6 |
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Move cpu_has_work and cpu_pc_from_tb to cpu.h Upstream f081c76ccfdbc1fdaa90fa5eb6abad46c1b5bfa8 Change-Id: I6f871f67404e13ba0c5070370542c0166814da02
pu.h
xec.h
|
7f7d9a9741a5bf946a51bba2de1eb8fc3374149e |
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
exec.h: fix coding style and change cpu_has_work to return bool + Remove obsolete env_to_regs + regs_to_env functions. Upstream f3e270377acd074f62e08960ef9444adf67d3590 Change-Id: Idd7561fce7b9a92f2194d2a9a1b710d32dc61183
xec.h
|
26d285dfa9f482e5b2f6d6df2bcb0eaed06cb1a9 |
18-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
tcg: Use hash table + static table for helpers. This changes the registration of helper functions inside of TCG to: - Use a GHashTable to store the map from helpers to function names. - Move the helper registration from targets to tcg. - Merge tcg_register_helper into tcg_context_init. Note: this makes TCG more dependent on target helper.h headers, it adds significant coupling, but so be it. Upstream 7c57df0d852a9a9faf9068ff235886c8b28b113e Upstream 6e085f72c6d331fb0e9fc69e3061cd1e5893d9e4 Upstream 5cd8f6210f83db15702e81b91e40e7079608e6f3 Upstream 100b5e0170e86661aaf830869be930a1a201ed08 Upstream 84fd9dd3f78ced9d41e1160d43862bb620cb462a Change-Id: Ie0877cf9a62451d89881e882d06d04456e5abe1b
elper.h
ranslate.c
|
5c95548adfa1a6ee462f3ae104307a03c599029a |
17-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm/helper.c: Remove cpu_single_env usage. Change-Id: I82f47842af899f25386820148226453ab341249f
elper.c
|
7a215435b53c33158dfa787bae2b43c6ffa7ddf6 |
17-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
target-arm: Remove extra def-helper.h include Because def-helper.h is designed to be included multiple times, but in a strictly even fashion, the extra include didn't affect generated code but produced annoying compiler warnings due to macros being redefined. Change-Id: I563f0c15172b1b1fd208d054ae9140025770977b
elper-android.h
|
eca7bc24e45fb6809582795ff88f13384b5ce7df |
14-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
softmmu_header.h: Pass CPUArchState to helper routines. This patch modifies the functions defined in softmmu_header.h to accept a CPUArchState as their first parameter, then it adjusts every caller appropriately. This gets up closer to upstream, and remove the obsolete softmmu_outside_jit.h that was used to do the same thing. Change-Id: I9eef01e95b7233c8c6f6da43d17262b9a9ebcd99
elper.c
ranslate-android.h
ranslate.c
|
5bb450ee9cc5da0c6582e63f41c504c7861e2788 |
14-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Rename CONFIG_MEMCHECK to CONFIG_ANDROID_MEMCHECK Change-Id: I9b0edcc1e243111f86f18c22eecbebb23219c297
elper-android.c
elper-android.h
ranslate-android.h
ranslate.c
|
96e493a7f0be0193cb17b24c3492d998411b5031 |
14-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
Move memcheck implementation to android/qemu/memcheck/ Change-Id: I806820d2c3d3f1436bbca54e53a7fa1a0e0a4dba
elper-android.c
ranslate-android.h
|
6d1afd3bf737fe15c9ba2a23c2f957ae8ff2e663 |
14-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
softmmu_template: Pass CPUArchState to tlb_fill. See upstream patch bccd9ec5f098668576342c83d90d6d6833d61d33 Change-Id: I889d8922d355bade60ae5c8cd00723692218a9c1
p_helper.c
|
3e0677df2819b1366819fe4112dc8464425b6eda |
07-Mar-2014 |
David 'Digit' Turner <digit@google.com> |
translate-all.c: Multi-level page maps. This brings translate-all.c to a state much closer to upstream. The major difference is the implementation of multi-level page tables (for PageDesc and PhysPageDesc entries). This is a preliminary requirement to handle 64-bit address spaces properly. + Move cpu_interrupt() from exec.c to translate-all.c Change-Id: I12f17cc92faa51cf6eb9ceba2be4b29817eed5fe
p_helper.c
|
975bba804aed54452f774cdbf79a7b4732fc7696 |
17-Feb-2014 |
David 'Digit' Turner <digit@google.com> |
Augment TCGContext. This moves many static buffers into the TCGContext data structure to match upstream. This shouldn't affect performance. Change-Id: Ib1fc7cf2baef155f1eaadbf9bfd9e2d381606a07
ranslate-android.h
ranslate.c
|
1348777d4229cf65ef12d0a4ee531d4502847277 |
17-Feb-2014 |
David 'Digit' Turner <digit@google.com> |
Create TBContext inside of TCGContext This matches upstream. Change-Id: I605dde69aab64dcec3a81875912a6e611ce0cf05
ranslate-android.h
|
85c62200dbdb7ced04b34cb228098b888a8cd828 |
16-Feb-2014 |
David 'Digit' Turner <digit@google.com> |
include/exec: Mist minor integrations. Change-Id: I4b775eac3ef81f466cebd52ecbaab2c94494944f
p_helper.c
|
171dd0bf53f93e64b71d3edc958e15f40c96748d |
04-Feb-2014 |
David 'Digit' Turner <digit@android.com> |
Remove CONFIG_TRACE support. It was limited to ARMv5, and didn't work correctly. Moreover, it made integrating upstream changes difficult, so remove it for now. Change-Id: I7da7a1e00b241d452c6dff5a318ccfedc5d7a8a4
elper-android.c
elper-android.h
elper.c
ranslate-android.h
ranslate.c
|
9b3a4b03315af9bcdf282243059e8fd1ce1c5c70 |
23-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
qemu-common.h: Remove include of cpu.h The "qemu-common.h" included "cpu.h" when NEED_CPU_H was defined, which introduced some nasty circular header dependency issues that affect later patches in this series. This patch removes the include, and fixes all other sources to include "cpu.h" as needed instead. + Move loader declarations to "hw/loader.h" + Move some stuff from "qemu/timer.h" to "exec/cpu-all.h" Change-Id: Ida1a4eccd889bae450b35ee32a931273ffe1f8d8
achine.c
|
e2678e116c8cdb0f36b247a5bd9cfacc849362fc |
16-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
Rename CPUState to CPUOldState. Upstream qemu has split the cpu state into two new data structures: CPUState -> is used to model the CPU state through the QEMU object model. CPUArchState -> actually a macro that aliases CPUArmState, CPUX86State or CPUMIPSState. Both were part of the "CPUState" in the current emulator sources. Previous patches introduced CPUArchState, as a simple alias to the machine-specific state. This patch renames any use of CPUState in the current code to CPUOldState, except within target-*/ directories where it is replaced by CPU${ARCH}State instead. This will allow bringing the upstream CPUState definition in the source tree, and slowly migrate everything to the right location. Change-Id: I88b79e6e89f1f36084dc2642e1cf415135e4da09
pu.h
xec.h
elper.c
p_helper.c
ranslate-android.h
ranslate.c
|
0dc43a9a7d4ed798d2c53792fe30a907f81d7615 |
16-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
disas.c: upstream integration. Change-Id: I64d91412a766abfe8ee0b530ed7cd5f2be63b91f
ranslate.c
|
85125480c07e11d5dd98f69b71bded86ee903075 |
14-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
target-arm/cpu.h: Minor updates. Integrate a few changes from upstream for ARM CPU definitions, before doing deeper surgery. Change-Id: Ia81bc935d1bb1c2ed0b73bd7a1f842ae65ed62b0
rm-semi.c
pu.h
vm-consts.h
|
a2c14f947951612b45024095afd2210aa7368773 |
04-Feb-2014 |
David 'Digit' Turner <digit@google.com> |
Cleanup: Remove 100+ compiler warnings. This is a big cleanup that removes compiler warnings by performing the following: - Remove unused functions or variables. - Change pointer cast to be alias safe using unions. - Use __attribute__((unused)) on some local variable definitions when their usage depends on conditional defines that are not always true when compiling the same source several times. - Fix a couple array indexing bugs. There are still a few warnings from the JSON lexer, libjpeg and the TCG helpers though, but the overall compilation is much cleaner. BUG=NONE Change-Id: Ic4483e6402b266ecfd7bca8c92a73d8fcf392a1f
elper.c
|
aa8236dc1b1ea300ab18716db5b8fab42aca3ca7 |
10-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
qemu-malloc.c: Remove qemu-specific heap routines. Remove all uses of qemu_malloc/malloc0/realloc/free/strdup/etc to use the equivalent GLib functions (g_malloc, g_free, ...) as per upstream. This also removes qemu-malloc.c since it's no longer required. Change-Id: I3c36a0396b73dd114b8da385b43f56a2e54dbb15
elper.c
|
bcde1092aca184dbd7860078af020de7d1e4e22f |
09-Jan-2014 |
David 'Digit' Turner <digit@android.com> |
rename target_phy_addr_t to hwaddr to match upstream. Upstream got rid of the target_phys_addr_t and replaced it with 'hwaddr', so do the corresponding rename here. Note that: - This also renames <exec/targphys.h> to <exec/hwaddr.h> - Upstream always deins hwaddr as a 64-bit type, while the size of our own hwaddr is still controlled by TARGET_PHYS_ADDR_BITS, and will be 32 for now. A future patch will change the type definition to fully match upstream, but it is more risky / requires more cleanups. It's simply cleaner / simpler to put the related work in a separate patch, given the large number of sources touched by the current change. Change-Id: Iee30869a57798c12109b6a23570b166232bb9244
elper.c
|
82a591c621f7c03a03d998383093bdcfdf95c0a8 |
17-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
arm-semi.c: move to target-arm/ Change-Id: I308b8bf33025530780efdb68631686a7749f0da7
rm-semi.c
|
e1e03df288d5a44bfbffbd86588395c7cbbc27df |
15-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move more headers. cbuffer.h, charpipe.h -> include/android/ cbuffer.c, charpipe.c -> android/ qemu_debug.h -> include/android/qemu-debug.h block.h, block_int.h -> include/block/ elf.h -> include/ hax.h -> include/exec/ qemu-lock.h -> include/exec/spinlock.h readline.h -> include/monitor/readline.h qemu-common.h - include qemu-barrier.h -> include/qemu/atomic.h qemu-log.h -> include/qemu/log.h Change-Id: I86b998932461caa35d347cd71b40bd6e4ec7d84d
ranslate.c
|
5425d40d2955e859097ded7a04913c3e7ee1a7b6 |
15-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move fpu/softfloat.h -> include/fpu/ Change-Id: I0d15a547dff8b421cdb633ecf939f954a4727631
pu.h
|
cc33b2d8035092608c7cba4154e9c44452727e1b |
15-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move disas.h to include/disas/ + dis-asm.h -> include/disas/bfd.h + arm-dis.c -> disas/arm.c ppc-dis.c -> disas/ppc.c i386-dis.c -> disas/i386.c mips-dis.c -> disas/mips.c + remove all unused .ld scripts Change-Id: Ie29662b83c09ea17d34e42dda3998691c182b10e
ranslate.c
|
d4e803c5e928790b14704ae7f0b048da7ba47fab |
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move android-trace.h to include/android/ + android-trace_common.h -> include/android/trace_common.h NOTE: trace_common.h is still in the top-level directory because the qtools first need to be updated to include the header at include/android/trace_common.h + trace.c -> android/ + user-events.h -> include/android/ + user-events-qemu.c -> android/ Change-Id: Idbf59c8b1a5cc2872f035eb3fa7f9922755f357d
elper-android.c
elper.c
ranslate-android.h
|
852088c7e08182c2de563872d558309815cbfa0d |
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move headers to include/exec/ Change-Id: Ife43f9cd12a02aa98f408043b0cccb9fe45a9ff7
pu.h
xec.h
elper-android.c
elper-android.h
elper.c
elper.h
p_helper.c
ranslate.c
|
e90d665cd63a0bc5c3306e1ee3e98ad362546b16 |
14-Dec-2013 |
David 'Digit' Turner <digit@android.com> |
Move more stuff to include/qemu/ and util/ Change-Id: I3d10ae4d5b050f7da565476e2c0f6be5d3348f5d
elper.c
|
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
xec.h
|
7c84162756a132d3e46af0dac564508b01baddd1 |
22-Feb-2012 |
Al Sutton <al@funkyandroid.com> |
Xcode 4.3 compatibility checkin The Xcode 4.3 compiler doesn't have support for global register variables so this patch ensures that the register keyword is not incuded for that compiler. Signed-off-by: Al Sutton <al@funkyandroid.com>
xec.h
|
5285864985be9077e58e42235af6582dee72e841 |
03-Jun-2011 |
David 'Digit' Turner <digit@android.com> |
target-arm: integrate upstream ARM translator. The new translator has the following benefits: - faster emulation of ARMv5TE code (through improved JIT) - proper support for ARMv7 and NEON - rebuilding the full-eng platform images for ARMv7-A results in additionnal speed increases (a.k.a. Thumb-2 rocks!). Note that, as an interesting side effect, NEON machine code is generally slower than the equivalent C code it is supposed to replace when run inside the emulator. This can be explained by the fact that for now the translator simply translates each NEON instruction into a series of sequential host instructions (and also requires over-head for packing/unpacking/saturation/ etc...). This change has been tested by running the "full-eng" platform image rebuilt for ARMv7-A and Neon and using an appropriate kernel image (prebuilt/android-arm/kernel/kernel-qemu-armv7). The system could boot and seems to work perfectly. Not a single issue has been experienced during testing. On a 2.4 GHz Xeon CPU, the image boots in about 25 seconds (compared to 40 seconds for a vanilla one without this emulator patch). Thanks to Peter Maydell at Linaro and ARM with his hard work to make this happen (first in upstream, and now on Android). This integration is based on the Meego git repository (git://gitorious.org/qemu-maemo/qemu.git) using the following hash: 7e2d65b0c95c865b1fa6d3d4948e8e822b9ac2fd On top of which, the following upstream patch has been applied (with recommendation from Peter): b7fa9214d8d4f57992c9acd0ccb125c54a095f00 (We chose this repository because it was the closest to the previous integrate. We will probably use the Linaro ones for future work on this part of the emulator). Change-Id: I54837e3d2e908b2380d158411d7a9813630e7e4e
pu.h
xec.h
elper.c
elper.h
elpers.h
wmmxt_helper.c
achine.c
eon_helper.c
p_addsub.h
p_helper.c
ranslate.c
|
3011b40fe40c7261c2c838d0037157dee556face |
03-Jun-2011 |
David 'Digit' Turner <digit@android.com> |
target-arm: move vstrcpy() to helper-android.c Change-Id: I76844f4f61ddc26832344d3fb03fb2dd33a93c07
elper-android.c
p_helper.c
|
406a59bd0a2e7a38cd840a5c08602e3a36bd2df8 |
12-May-2011 |
David 'Digit' Turner <digit@android.com> |
trace.h: rename to trace-android.h This is done to allow for future integration of the upstream auto-generated "trace.h" header file. Change-Id: I9d1bba3320d9e8acfd7359540d3ed6695773061e
elper-android.c
elper.c
ranslate-android.h
|
288208c386810fef725aa448a9f46bd2772bec8c |
11-May-2011 |
David 'Digit' Turner <digit@android.com> |
target-arm/translate.c: move Android-specific stuff out. Change-Id: Id14c6b106dbac9b4016b7423327e9eb22e21fe75
elper-android.c
elper-android.h
elper.c
elpers.h
emcheck_arm_helpers.h
ranslate-android.h
ranslate.c
|
f645f7d6fd841e39524e5df8c1a7fd8347f92ac1 |
11-May-2011 |
David 'Digit' Turner <digit@android.com> |
cpu_restore_state: remove un-necessary argument. Change-Id: I01cef0743cc9db9d21c2b7feb9f2a877ac4d2b35
p_helper.c
|
d3d4468189618e89f74d8f51b8470f277e000938 |
10-May-2011 |
David 'Digit' Turner <digit@android.com> |
translate-all.c: minor integrate
ranslate.c
|
8ee4e5ed2bf68384cd80ec5b958da4da164652ae |
09-May-2011 |
David 'Digit' Turner <digit@android.com> |
trace: simplify code and avoid conflicts Change-Id: I8f93e06038bd6e35a2972e3fef351046c247e4ee
ranslate.c
|
45c3be00d4c1f85ba8bbf34827c024fbc636725f |
09-May-2011 |
David 'Digit' Turner <digit@android.com> |
integrate: qemu-common.h changes Change-Id: I4620b4560465ed105202332b59f91b708d91a525
pu.h
|
462564f31bbdc9939bf1d2376e2782defa7ef655 |
23-Feb-2011 |
David 'Digit' Turner <digit@android.com> |
Minor cleanups for core/ui Makefile separation. This patch contains minor cleanups that will be needed by a few future patches that will improve the way core and ui sources are separated and built. - remove a few compiler warnings - formatting - remove the memcheck CONFIG_MEMCHECK checks (they later get in the way) - refine hw/hw.h inclusion's of cpu.h (this comes from upstream) - add missing definitions for PRUd64 and PRUx64 (used later) - remove CONFIG_SHAPER test, replace with CONFIG_ANDROID instead. - add missing strdup() calls. Change-Id: Ic7d6681a51af718c298f0ee4bd884b1d8750f28e
elper.c
|
fc8ed80ba1362d2ce500003625e1c9c39f765661 |
10-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
Revert "Build arm and x86 binaries at the same time." This fails to build on MacOS X This reverts commit a39b10bd2574825a815d6ad854499dd127cfa9cb.
elper.c
|
a39b10bd2574825a815d6ad854499dd127cfa9cb |
07-Feb-2011 |
David 'Digit' Turner <digit@android.com> |
Build arm and x86 binaries at the same time. Change-Id: I105c5a097c988cb964b47b40b71c7a08af0d9210
elper.c
|
6bfc5c725a5d9b23eb829a9db3c0f0a4c38b5a4e |
06-Jan-2011 |
David 'Digit' Turner <digit@android.com> |
Fix tracing bug when built as 64-bit program. Change-Id: I523f4464cfbbd02aff93031660d2ee2f80d54921
ranslate.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
elper.c
elpers.h
ranslate.c
|
4e024bb4f5c8aa8b07459f7fbd65c35122127fd1 |
22-Sep-2010 |
David 'Digit' Turner <digit@android.com> |
Remove compiler warnings when building the emulator. This forces -Wall during the build. Note that this patch doesn't remove all warnings, but most of the remaining ones are from upstream anyway. Change-Id: I8808d8495e99866e156ce5780d2e3c305eab491f
p_helper.c
ranslate.c
|
6a9ef1773bf874dea493ff3861782a1e577b67dd |
09-Sep-2010 |
David Turner <digit@android.com> |
upstream: move timer management code to qemu-timer.c
pu.h
|
a5d412078b8e7478d81df03710eacc7a21096ba2 |
11-May-2010 |
David 'Digit' Turner <digit@android.com> |
Upstream: Replace sys-queue.h with qemu-queue.h Change-Id: I5c51f54a7fe2ea702420429bbf0c789ed6d8c534
ranslate.c
|
20894ae3fa98f82da925fbeb72e616eef509758a |
11-May-2010 |
David 'Digit' Turner <digit@android.com> |
Upstream: HOST_WORDS_ALIGNED -> WORDS_ALIGNED Change-Id: Ica9022695d83fb48a8c25fdb1e1f0dc1c63747ff
eon_helper.c
|
a1204591a52bf668ee72c86f98f53189621572a2 |
02-Apr-2010 |
Vladimir Chtchetkine <vchtchetkine@google.com> |
Revert change I7af83e21c64d217c6b28bf6cb5ee2e2f23182c95 to fix Froyo build. Apparently, that change that supposedly fixed AT-related ARMv7 bug broke DexOpt step in the build process, resulting in trashed files that crash the device. Rolling this change back to fix Froyo, until cause of the DexOpt breaking has been found and fixed Change-Id: I33b417fcbd65767f7cfe60f5fb5ffa32610b4852
t_helper.h
ranslate.c
|
ca52b2260ba9f9bac07092c3d8260ed523de1fe1 |
24-Mar-2010 |
Vladimir Chtchetkine <vchtchetkine@google.com> |
Make return address table independent from process context. Use physical addresses (instead of emulated ones) for registered return addresses. This way addresses will be independent from process context, as even if virtual addresses may overlap, the physical ones will not. Change-Id: If5be5174286be0a456c47c48812d7cc9bf19bc1f
emcheck_arm_helpers.h
ranslate.c
|
01e9608cb62901d13b330f851a260a2082e81a06 |
23-Mar-2010 |
Vladimir Chtchetkine <vchtchetkine@google.com> |
Fixes for obvious ARMv7 bugs in emulator. This CL doesn't fix ARMv7 problems in the emulator (emulated system still crashes, although with these fixes it crashes much later than without them), however, this CL fixes real bugs related to IT block translations. In particular, it fixes: - Wrong ITSTATE calculation on condition that gen_intermediate_code_internal is called with search_pc parameter set to 1. In the original code ITSTATE was blindly inherited from the CPU's condexec_bits field, without consideration that translation could be performed starting from an address that has nothing to do with the current ITSTATE. Change-Id: I7af83e21c64d217c6b28bf6cb5ee2e2f23182c95
t_helper.h
ranslate.c
|
5389aa19033153c09556d1362a8b8a56abccb8f5 |
16-Feb-2010 |
Vladimir Chtchetkine <vchtchetkine@google.com> |
Merge memory checking from sandbox Change-id: Ibce845d0
pu.h
elper.c
elpers.h
emcheck_arm_helpers.h
ranslate.c
|
a577fcadc0b365ee629aec313f57a65d54fe5d89 |
16-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
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.
elper.c
elpers.h
ranslate.c
|
3af4f6ae1fa6e06de1284fa1143cb8a485ac6437 |
09-Oct-2009 |
David 'Digit' Turner <digit@google.com> |
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.
ranslate.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.
ranslate.c
|
238b4b0ef1a01afa66ef267dae4a96401ad386db |
20-Sep-2009 |
David 'Digit' Turner <digit@google.com> |
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.
p_helper.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.
pu.h
xec.h
elper.c
elpers.h
wmmxt_helper.c
achine.c
eon_helper.c
p_addsub.h
p_helper.c
ranslate.c
|
80562525ca945d9e921eb49f96d52f1b5a0e693d |
20-May-2009 |
David 'Digit' Turner <digit@google.com> |
This should fix bad QADD/QDADD/QSUB/QDSUB emulation in the Android emulator
ranslate.c
|
013978687addfae64dbb8e8a179af10922bd2802 |
19-May-2009 |
Jack Veenstra <veenstra@android.com> |
Fix critical bug with emulator tracing where the basic block addresses were wrong. One of the calls to trace_add_insn() was missing a parameter and was passing in garbage. This parameter "is_thumb" is expected to be 0 or 1 and is OR-ed with the basic block address to distinguish ARM and Thumb instruction blocks.
ranslate.c
|
ab42ada6ecfb81d6e231d5997b5892efd0fde5ad |
01-May-2009 |
Jack Veenstra <veenstra@android.com> |
Added tracing of exceptions to the emulator. Exceptions used to be traced but that code was deleted during a large merge.
elper.c
|
8b23a6c7e1aee255004dd19098d4c2462b61b849 |
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
pu.h
xec.h
elper.c
elpers.h
wmmxt_helper.c
achine.c
eon_helper.c
p_addsub.h
p_helper.c
ranslate.c
|
f721e3ac031f892af46f255a47d7f54a91317b30 |
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
pu.h
xec.h
elper.c
elpers.h
wmmxt_helper.c
achine.c
eon_helper.c
p_addsub.h
p_helper.c
ranslate.c
|
c27f813900a3c114562efbb8df1065e94766fc48 |
11-Feb-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@130745
pu.h
xec.h
elper.c
elpers.h
wmmxt_helper.c
achine.c
eon_helper.c
wfpe/double_cpdo.c
wfpe/extended_cpdo.c
wfpe/fpa11.c
wfpe/fpa11.h
wfpe/fpa11.inl
wfpe/fpa11_cpdo.c
wfpe/fpa11_cpdt.c
wfpe/fpa11_cprt.c
wfpe/fpopcode.c
wfpe/fpopcode.h
wfpe/fpsr.h
wfpe/single_cpdo.c
p.c
p_addsub.h
p_helper.c
p_mem.h
p_template.h
ranslate.c
|
55f4e4a5ec657a017e3bf75299ad71fd1c968dd3 |
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
pu.h
elper.c
p.c
p_helper.c
p_mem.h
ranslate.c
|
413f05aaf54fa08c0ae7e997327a4f4a473c0a8d |
12-Jan-1970 |
Upstream <upstream-import@none> |
external/qemu 0.8.2
pu.h
xec.h
elper.c
wfpe/double_cpdo.c
wfpe/extended_cpdo.c
wfpe/fpa11.c
wfpe/fpa11.h
wfpe/fpa11.inl
wfpe/fpa11_cpdo.c
wfpe/fpa11_cpdt.c
wfpe/fpa11_cprt.c
wfpe/fpopcode.c
wfpe/fpopcode.h
wfpe/fpsr.h
wfpe/single_cpdo.c
p.c
p_helper.c
p_mem.h
p_template.h
ranslate.c
|