[llvm] 6ebb848 - langref updates for aarch64 trampoline (#139740)
via llvm-commits
llvm-commits at lists.llvm.org
Fri May 16 08:46:30 PDT 2025
Author: Jameson Nash
Date: 2025-05-16T17:46:27+02:00
New Revision: 6ebb84869e6cf1a643b053e53931c6075b2cc8ae
URL: https://github.com/llvm/llvm-project/commit/6ebb84869e6cf1a643b053e53931c6075b2cc8ae
DIFF: https://github.com/llvm/llvm-project/commit/6ebb84869e6cf1a643b053e53931c6075b2cc8ae.diff
LOG: langref updates for aarch64 trampoline (#139740)
Add clarifying comments to the langref from the review of #126743
Added:
Modified:
llvm/docs/LangRef.rst
Removed:
################################################################################
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index fd627a694b818..a1ae6611acd3c 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -410,8 +410,8 @@ added in the future:
calling convention: on most platforms, they are not preserved and need to
be saved by the caller, but on Windows, xmm6-xmm15 are preserved.
- - On AArch64 the callee preserve all general purpose registers, except X0-X8
- and X16-X18.
+ - On AArch64 the callee preserve all general purpose registers, except
+ X0-X8 and X16-X18. Not allowed with ``nest``.
The idea behind this convention is to support calls to runtime functions
that have a hot path and a cold path. The hot path is usually a small piece
@@ -447,9 +447,9 @@ added in the future:
R11. R11 can be used as a scratch register. Furthermore it also preserves
all floating-point registers (XMMs/YMMs).
- - On AArch64 the callee preserve all general purpose registers, except X0-X8
- and X16-X18. Furthermore it also preserves lower 128 bits of V8-V31 SIMD -
- floating point registers.
+ - On AArch64 the callee preserve all general purpose registers, except
+ X0-X8 and X16-X18. Furthermore it also preserves lower 128 bits of V8-V31
+ SIMD floating point registers. Not allowed with ``nest``.
The idea behind this convention is to support calls to runtime functions
that don't need to call out to any other functions.
@@ -21130,7 +21130,12 @@ sufficiently aligned block of memory; this memory is written to by the
intrinsic. Note that the size and the alignment are target-specific -
LLVM currently provides no portable way of determining them, so a
front-end that generates this intrinsic needs to have some
-target-specific knowledge. The ``func`` argument must hold a function.
+target-specific knowledge.
+
+The ``func`` argument must be a constant (potentially bitcasted) pointer to a
+function declaration or definition, since the calling convention may affect the
+content of the trampoline that is created.
+
Semantics:
""""""""""
More information about the llvm-commits
mailing list