tcg: Use softmmu fast path for unaligned accesses

This patch integrates several commits from Qemu ToT in order to improve
tcg infrastructure for better unaligned accesses handling. These tcg updates
bring performance gain for all architectures which support misaligned access
in hardware.

Makefile.qemu2-sources.mk is updated to include the new file tcg/tcg-op.c.

List of squashed commits from Qemu ToT:

1f00b27 tcg: Improve the alignment check infrastructure
08b0b23 tcg/i386: omit a few REXW prefixes in softmmu code
9ee1490 tcg/aarch64: Use softmmu fast path for unaligned accesses
a5e3981 tcg/s390: Use softmmu fast path for unaligned accesses
68d45bb tcg/ppc: Improve unaligned load/store handling on 64-bit backend
8cc580f tcg/i386: use softmmu fast path for unaligned accesses
9615212 tcg/optimize: fix tcg_opt_gen_movi
80adb8f tcg/aarch64: use 32-bit offset for 32-bit softmmu emulation
ffc6372 tcg/aarch64: use 32-bit offset for 32-bit user-mode emulation
6c0f0c0 tcg/aarch64: add ext argument to tcg_out_insn_3310
ee8ba9e tcg/i386: Extend addresses for 32-bit guests
c19f47b tcg: fix dead computation for repeated		 input arguments
7e1df26 tcg: fix register allocation with two aliased dead inputs
59c4b7e tcg: Handle MO_AMASK in tcg_dump_ops
2b7ec66 tcg: Mask TCGMemOp appropriately for indexing
dfb3630 tcg: Add MO_ALIGN, MO_UNALN
3972ef6 tcg: Push merged memop+mmu_idx parameter to softmmu routines
59227d5 tcg: Merge memop and mmu_idx parameters to qemu_ld/st
15fc7da tcg: Remove unused opcodes
a4ce099 tcg: Implement insert_op_before
0c627cd tcg: Remove opcodes instead of noping them out
c45cb8b tcg: Put opcodes in a linked list
fe700ad tcg: Introduce tcg_op_buf_count and tcg_op_buf_full
0a7df5d tcg: Move emit of INDEX_op_end into gen_tb_end
3a13c3f tcg: Reduce ifdefs in tcg-op.c
951c630 tcg: Move some opcode generation functions out of line

Change-Id: I88b46075a65b1f35d8aeb286fc5d7c8a6dae7d4c
Signed-off-by: Goran Ferenc <goran.ferenc@imgtec.com>
41 files changed
tree: 19ae7950fc0ad2face0061970cdff208d23e2f91
  1. android-qemu2-glue/
  2. audio/
  3. backends/
  4. block/
  5. bsd-user/
  6. default-configs/
  7. disas/
  8. docs/
  9. fpu/
  10. fsdev/
  11. gdb-xml/
  12. hw/
  13. include/
  14. libcacard/
  15. libdecnumber/
  16. linux-headers/
  17. linux-user/
  18. net/
  19. pc-bios/
  20. po/
  21. qapi/
  22. qga/
  23. qobject/
  24. qom/
  25. roms/
  26. scripts/
  27. slirp/
  28. stubs/
  29. sysconfigs/
  30. target-alpha/
  31. target-arm/
  32. target-cris/
  33. target-i386/
  34. target-lm32/
  35. target-m68k/
  36. target-microblaze/
  37. target-mips/
  38. target-moxie/
  39. target-openrisc/
  40. target-ppc/
  41. target-s390x/
  42. target-sh4/
  43. target-sparc/
  44. target-tricore/
  45. target-unicore32/
  46. target-xtensa/
  47. tcg/
  48. tests/
  49. trace/
  50. ui/
  51. util/
  52. .exrc
  53. .gitignore
  54. .gitmodules
  55. .mailmap
  56. .travis.yml
  57. accel.c
  58. aio-posix.c
  59. aio-win32.c
  60. android-commands.h
  61. arch_init.c
  62. async.c
  63. balloon.c
  64. block-migration.c
  65. block.c
  66. blockdev-nbd.c
  67. blockdev.c
  68. blockjob.c
  69. bootdevice.c
  70. bt-host.c
  71. bt-vhci.c
  72. Changelog
  73. CODING_STYLE
  74. configure
  75. COPYING
  76. COPYING.LIB
  77. coroutine-gthread.c
  78. coroutine-sigaltstack.c
  79. coroutine-ucontext.c
  80. coroutine-win32.c
  81. cpu-exec.c
  82. cpus.c
  83. cputlb.c
  84. device-hotplug.c
  85. device_tree.c
  86. disas.c
  87. dma-helpers.c
  88. dump.c
  89. exec.c
  90. gdbstub.c
  91. HACKING
  92. hax-stub.c
  93. hmp-commands.hx
  94. hmp.c
  95. hmp.h
  96. iohandler.c
  97. ioport.c
  98. iothread.c
  99. kvm-all.c
  100. kvm-stub.c
  101. LICENSE
  102. main-loop.c
  103. MAINTAINERS
  104. Makefile
  105. Makefile.objs
  106. Makefile.target
  107. memory.c
  108. memory_mapping.c
  109. migration-exec.c
  110. migration-fd.c
  111. migration-rdma.c
  112. migration-tcp.c
  113. migration-unix.c
  114. migration.c
  115. module-common.c
  116. monitor.c
  117. nbd.c
  118. numa.c
  119. os-posix.c
  120. os-win32.c
  121. page_cache.c
  122. qapi-schema.json
  123. qdev-monitor.c
  124. qdict-test-data.txt
  125. qemu-bridge-helper.c
  126. qemu-char.c
  127. qemu-coroutine-io.c
  128. qemu-coroutine-lock.c
  129. qemu-coroutine-sleep.c
  130. qemu-coroutine.c
  131. qemu-doc.texi
  132. qemu-file-stdio.c
  133. qemu-file-unix.c
  134. qemu-file.c
  135. qemu-img-cmds.hx
  136. qemu-img.c
  137. qemu-img.texi
  138. qemu-io-cmds.c
  139. qemu-io.c
  140. qemu-log.c
  141. qemu-nbd.c
  142. qemu-nbd.texi
  143. qemu-options-wrapper.h
  144. qemu-options.h
  145. qemu-options.hx
  146. qemu-seccomp.c
  147. qemu-tech.texi
  148. qemu-timer.c
  149. qemu.nsi
  150. qemu.sasl
  151. qmp-commands.hx
  152. qmp.c
  153. qtest.c
  154. README
  155. rules.mak
  156. savevm.c
  157. softmmu_template.h
  158. spice-qemu-char.c
  159. tcg-runtime.c
  160. tci.c
  161. thread-pool.c
  162. thunk.c
  163. tpm.c
  164. trace-events
  165. translate-all.c
  166. translate-all.h
  167. user-exec.c
  168. VERSION
  169. version.rc
  170. vl.c
  171. vmstate.c
  172. xbzrle.c
  173. xen-common-stub.c
  174. xen-common.c
  175. xen-hvm-stub.c
  176. xen-hvm.c
  177. xen-mapcache.c