Skip to content

Commit 0b5e0ed

Browse files
committed
[LLVM] Document 'llvm.stackaddress' Intrinsic
1 parent 029d9fc commit 0b5e0ed

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

llvm/docs/LangRef.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14295,6 +14295,36 @@ Semantics:
1429514295

1429614296
Note this intrinsic is only verified on AArch64 and ARM.
1429714297

14298+
'``llvm.stackaddress``' Intrinsic
14299+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14300+
14301+
Syntax:
14302+
"""""""
14303+
14304+
::
14305+
14306+
declare ptr @llvm.stackaddress()
14307+
14308+
Overview:
14309+
"""""""""
14310+
14311+
The '``llvm.stackaddress``' instrinsic returns the starting address of the stack region that may be
14312+
used by called functions.
14313+
14314+
Semantics:
14315+
""""""""""
14316+
14317+
This intrinsic returns the *logical* value of the stack pointer register, that is, the address
14318+
separating the stack space of the current function from the stack space that may be modified by
14319+
called functions.
14320+
14321+
On certain targets (e.g. x86), the logical and actual (or physical) values of the stack pointer
14322+
register are the same. However, on other architectures (e.g. SPARCv9), the logical value of the
14323+
stack pointer register may differ from the physical value. '``llvm.stackaddress``' handles this
14324+
discrepancy and returns the correct boundary address.
14325+
14326+
**Note**: This intrinsic is currently only implemented for x86 and x86-64.
14327+
1429814328
'``llvm.frameaddress``' Intrinsic
1429914329
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1430014330

0 commit comments

Comments
 (0)