The following patch is from work by Katherine Temkin to add a JITless backend for aarch64. The aarch64-tcti target for TCG uses pre-compiled "gadgets" which are snippets of code for every TCG op x all operands and then at runtime will "thread" together the gadgets with jumps after each gadget. This results in significant speedup against TCI but is still much slower than JIT.
This backend is mainly useful for iOS, which does not allow JIT in distributed apps. We ported the feature from v5.2 to v10.0 but will rebase it to master if there is interest. Would this backend be useful for mainline QEMU? Joelle van Dyne (1): tcg/tcti: add TCTI TCG backend for acceleration on non-JIT AArch64 docs/devel/tcg-tcti.rst | 1140 +++++++++ meson.build | 10 + include/accel/tcg/getpc.h | 6 +- include/disas/dis-asm.h | 1 + include/tcg/tcg-opc.h | 12 + include/tcg/tcg.h | 2 +- tcg/aarch64-tcti/tcg-target-con-set.h | 32 + tcg/aarch64-tcti/tcg-target-con-str.h | 20 + tcg/aarch64-tcti/tcg-target-has.h | 132 + tcg/aarch64-tcti/tcg-target-mo.h | 13 + tcg/aarch64-tcti/tcg-target-reg-bits.h | 16 + tcg/aarch64-tcti/tcg-target.h | 107 + host/include/generic/host/atomic128-cas.h.inc | 3 +- tcg/aarch64-tcti/tcg-target-opc.h.inc | 15 + accel/tcg/cputlb.c | 3 +- accel/tcg/tcg-accel-ops.c | 8 + tcg/optimize.c | 2 + tcg/region.c | 11 +- tcg/tcg-op.c | 27 + tcg/tcg.c | 19 +- tcg/aarch64-tcti/tcg-target.c.inc | 2250 +++++++++++++++++ meson_options.txt | 2 + scripts/meson-buildoptions.sh | 5 + tcg/aarch64-tcti/tcti-gadget-gen.py | 1192 +++++++++ tcg/meson.build | 71 +- 25 files changed, 5082 insertions(+), 17 deletions(-) create mode 100644 docs/devel/tcg-tcti.rst create mode 100644 tcg/aarch64-tcti/tcg-target-con-set.h create mode 100644 tcg/aarch64-tcti/tcg-target-con-str.h create mode 100644 tcg/aarch64-tcti/tcg-target-has.h create mode 100644 tcg/aarch64-tcti/tcg-target-mo.h create mode 100644 tcg/aarch64-tcti/tcg-target-reg-bits.h create mode 100644 tcg/aarch64-tcti/tcg-target.h create mode 100644 tcg/aarch64-tcti/tcg-target-opc.h.inc create mode 100644 tcg/aarch64-tcti/tcg-target.c.inc create mode 100755 tcg/aarch64-tcti/tcti-gadget-gen.py -- 2.41.0