From: Joelle van Dyne <j@getutm.app>
To: qemu-devel@nongnu.org
Subject: [RFC PATCH 0/1] TCTI TCG backend for acceleration on non-JIT AArch64
Date: Tue, 22 Jul 2025 10:42:05 -0700 [thread overview]
Message-ID: <20250722174228.16205-1-j@getutm.app> (raw)
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
next reply other threads:[~2025-07-22 18:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-22 17:42 Joelle van Dyne [this message]
2025-07-22 17:42 ` [RFC PATCH 1/1] tcg/tcti: add TCTI TCG backend for acceleration on non-JIT AArch64 Joelle van Dyne
2025-07-23 0:51 ` [RFC PATCH 0/1] " Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250722174228.16205-1-j@getutm.app \
--to=j@getutm.app \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).