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
20 files changed
tree: 1020a7d95bec028cdba66816c2b4dc6c0bd79073
  1. android/
  2. audio/
  3. block/
  4. distrib/
  5. docs/
  6. elff/
  7. fpu/
  8. gdb-xml/
  9. hw/
  10. images/
  11. memcheck/
  12. pc-bios/
  13. proxy/
  14. slirp/
  15. slirp-android/
  16. target-arm/
  17. target-i386/
  18. tcg/
  19. telephony/
  20. .gitignore
  21. a.out.h
  22. acl.c
  23. acl.h
  24. aes.c
  25. aes.h
  26. aio-android.c
  27. aio.c
  28. alpha.ld
  29. android-configure.sh
  30. android-rebuild.sh
  31. android-trace.h
  32. android-trace_common.h
  33. Android.mk
  34. arch_init.c
  35. arch_init.h
  36. arm-dis.c
  37. arm-semi.c
  38. arm.ld
  39. async.c
  40. balloon.h
  41. block.c
  42. block.h
  43. block_int.h
  44. blockdev.c
  45. blockdev.h
  46. bswap.h
  47. bt-host.c
  48. bt-host.h
  49. bt-vhci.c
  50. buffered_file.c
  51. buffered_file.h
  52. cache-utils.c
  53. cache-utils.h
  54. cbuffer.c
  55. cbuffer.h
  56. Changelog
  57. CHANGES.TXT
  58. charpipe.c
  59. charpipe.h
  60. CleanSpec.mk
  61. compatfd.c
  62. compatfd.h
  63. console.c
  64. console.h
  65. COPYING
  66. COPYING.LIB
  67. cpu-all.h
  68. cpu-common.h
  69. cpu-defs.h
  70. cpu-exec.c
  71. cpus.c
  72. cpus.h
  73. curses.c
  74. curses_keys.h
  75. cutils.c
  76. d3des.c
  77. d3des.h
  78. def-helper.h
  79. device_tree.c
  80. device_tree.h
  81. dis-asm.h
  82. disas.c
  83. disas.h
  84. dma-helpers.c
  85. dma.h
  86. dyngen-exec.h
  87. dynlink-static.c
  88. dynlink.h
  89. elf.h
  90. elf_ops.h
  91. envlist.c
  92. envlist.h
  93. exec-all.h
  94. exec.c
  95. feature_to_c.sh
  96. gdbstub.c
  97. gdbstub.h
  98. gen-charmap.py
  99. gen-icount.h
  100. gen-skin.py
  101. host-defs.h
  102. host-utils.c
  103. host-utils.h
  104. hostregs_helper.h
  105. hpet.h
  106. hxtool
  107. i386-dis.c
  108. i386-vl.ld
  109. i386.ld
  110. ia64.ld
  111. input.c
  112. INSTALL
  113. iohandler.c
  114. iolooper-select.c
  115. iolooper.h
  116. ioport-user.c
  117. ioport.c
  118. ioport.h
  119. json-lexer.c
  120. json-lexer.h
  121. json-parser.c
  122. json-parser.h
  123. json-streamer.c
  124. json-streamer.h
  125. keymaps.c
  126. keymaps.h
  127. kqemu.c
  128. kqemu.h
  129. kvm-all.c
  130. kvm-android.c
  131. kvm-android.h
  132. kvm.h
  133. LICENSE
  134. linux_keycodes.h
  135. loader.c
  136. loadpng.c
  137. m68k.ld
  138. Makefile
  139. Makefile.android
  140. Makefile.common
  141. Makefile.target
  142. migration-dummy-android.c
  143. migration-exec.c
  144. migration-tcp-android.c
  145. migration-tcp.c
  146. migration.c
  147. migration.h
  148. module.c
  149. module.h
  150. MODULE_LICENSE_GPL
  151. monitor-android.h
  152. monitor.c
  153. monitor.h
  154. net-android.c
  155. net-checksum.c
  156. net.c
  157. net.h
  158. NOTICE
  159. notify.c
  160. notify.h
  161. offset_layout.py
  162. os-posix.c
  163. os-win32.c
  164. osdep.c
  165. osdep.h
  166. oslib-posix.c
  167. oslib-win32.c
  168. path.c
  169. poison.h
  170. posix-aio-compat.c
  171. ppc-dis.c
  172. ppc.ld
  173. qbool.c
  174. qbool.h
  175. qdict.c
  176. qdict.h
  177. qemu-aio.h
  178. qemu-barrier.h
  179. qemu-char.c
  180. qemu-char.h
  181. qemu-common.h
  182. qemu-config.c
  183. qemu-config.h
  184. qemu-error.c
  185. qemu-error.h
  186. qemu-io.c
  187. qemu-lock.h
  188. qemu-log.h
  189. qemu-malloc.c
  190. qemu-monitor.hx
  191. qemu-objects.h
  192. qemu-option.c
  193. qemu-option.h
  194. qemu-options.h
  195. qemu-options.hx
  196. qemu-os-posix.h
  197. qemu-os-win32.h
  198. qemu-queue.h
  199. qemu-sockets-android.c
  200. qemu-sockets.c
  201. qemu-thread.c
  202. qemu-thread.h
  203. qemu-timer-common.c
  204. qemu-timer.c
  205. qemu-timer.h
  206. qemu_debug.h
  207. qemu_file.h
  208. qemu_socket.h
  209. qemu_timers.h
  210. qerror.c
  211. qerror.h
  212. qfloat.c
  213. qfloat.h
  214. qint.c
  215. qint.h
  216. qjson.c
  217. qjson.h
  218. qlist.c
  219. qlist.h
  220. qobject.h
  221. qstring.c
  222. qstring.h
  223. readline.c
  224. readline.h
  225. README
  226. savevm.c
  227. sdl_keysym.h
  228. shaper.c
  229. shaper.h
  230. sockets.c
  231. sockets.h
  232. softmmu-semi.h
  233. softmmu_defs.h
  234. softmmu_exec.h
  235. softmmu_header.h
  236. softmmu_outside_jit.c
  237. softmmu_outside_jit.h
  238. softmmu_template.h
  239. sparc.ld
  240. sys-tree.h
  241. sysemu.h
  242. tap-win32.c
  243. targphys.h
  244. tcpdump.c
  245. tcpdump.h
  246. thunk.c
  247. thunk.h
  248. trace.c
  249. trace.h
  250. trace_common.h
  251. translate-all.c
  252. translate-op.c
  253. translate.make
  254. uboot_image.h
  255. usb-dummy-android.c
  256. usb-linux.c
  257. user-events-qemu.c
  258. user-events.h
  259. varint.c
  260. varint.h
  261. vgafont.h
  262. vl-android-ui.c
  263. vl-android.c
  264. vl.c
  265. vnc-android.c
  266. vnc-tls.h
  267. vnc.c
  268. vnc.h
  269. vnc_keysym.h
  270. vnchextile.h
  271. x86_64.ld