-
Notifications
You must be signed in to change notification settings - Fork 15.3k
langref updates for aarch64 trampoline #139740
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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``. | ||
vtjnash marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| The idea behind this convention is to support calls to runtime functions | ||
| that don't need to call out to any other functions. | ||
|
|
@@ -21120,7 +21120,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: | ||
| """""""""" | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.