diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-06-09 20:18:42 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-06-09 20:18:42 +0000 |
commit | c90ddb186967525c41456565152d7cd898616bda (patch) | |
tree | 568c491d221518a3d71bd81bc426d179c2058f9b /docs | |
parent | 8a0c2d17f5a26bde5e080abd88587aba76b6a325 (diff) | |
download | llvm-c90ddb186967525c41456565152d7cd898616bda.tar.gz llvm-c90ddb186967525c41456565152d7cd898616bda.tar.bz2 llvm-c90ddb186967525c41456565152d7cd898616bda.tar.xz |
ARM: add VLA extension for WoA Itanium ABI
The armv7-windows-itanium environment is nearly identical to the MSVC ABI. It
has a few divergences, mostly revolving around the use of the Itanium ABI for
C++. VLA support is one of the extensions that are amongst the set of the
extensions.
This adds support for proper VLA emission for this environment. This is
somewhat similar to the handling for __chkstk emission on X86 and the large
stack frame emission for ARM. The invocation style for chkstk is still
controlled via the -mcmodel flag to clang.
Make an explicit note that this is an extension.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210489 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/Extensions.rst | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/docs/Extensions.rst b/docs/Extensions.rst index cd489c0e54..271c08598b 100644 --- a/docs/Extensions.rst +++ b/docs/Extensions.rst @@ -195,3 +195,17 @@ range via a slight deviation. It will generate an indirect jump as follows: blx r12 sub.w sp, sp, r4 +Variable Length Arrays +^^^^^^^^^^^^^^^^^^^^^^ + +The reference implementation (Microsoft Visual Studio 2012) does not permit the +emission of Variable Length Arrays (VLAs). + +The Windows ARM Itanium ABI extends the base ABI by adding support for emitting +a dynamic stack allocation. When emitting a variable stack allocation, a call +to ``__chkstk`` is emitted unconditionally to ensure that guard pages are setup +properly. The emission of this stack probe emission is handled similar to the +standard stack probe emission. + +The MSVC environment does not emit code for VLAs currently. + |