Skip to content

Commit 6ebb848

Browse files
authored
langref updates for aarch64 trampoline (#139740)
Add clarifying comments to the langref from the review of #126743
1 parent 04fde85 commit 6ebb848

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

llvm/docs/LangRef.rst

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,8 @@ added in the future:
410410
calling convention: on most platforms, they are not preserved and need to
411411
be saved by the caller, but on Windows, xmm6-xmm15 are preserved.
412412

413-
- On AArch64 the callee preserve all general purpose registers, except X0-X8
414-
and X16-X18.
413+
- On AArch64 the callee preserve all general purpose registers, except
414+
X0-X8 and X16-X18. Not allowed with ``nest``.
415415

416416
The idea behind this convention is to support calls to runtime functions
417417
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:
447447
R11. R11 can be used as a scratch register. Furthermore it also preserves
448448
all floating-point registers (XMMs/YMMs).
449449

450-
- On AArch64 the callee preserve all general purpose registers, except X0-X8
451-
and X16-X18. Furthermore it also preserves lower 128 bits of V8-V31 SIMD -
452-
floating point registers.
450+
- On AArch64 the callee preserve all general purpose registers, except
451+
X0-X8 and X16-X18. Furthermore it also preserves lower 128 bits of V8-V31
452+
SIMD floating point registers. Not allowed with ``nest``.
453453

454454
The idea behind this convention is to support calls to runtime functions
455455
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
2113021130
intrinsic. Note that the size and the alignment are target-specific -
2113121131
LLVM currently provides no portable way of determining them, so a
2113221132
front-end that generates this intrinsic needs to have some
21133-
target-specific knowledge. The ``func`` argument must hold a function.
21133+
target-specific knowledge.
21134+
21135+
The ``func`` argument must be a constant (potentially bitcasted) pointer to a
21136+
function declaration or definition, since the calling convention may affect the
21137+
content of the trampoline that is created.
21138+
2113421139

2113521140
Semantics:
2113621141
""""""""""

0 commit comments

Comments
 (0)