Go to file
Peter Smith 70997f9a4e [ELF][ARM] Implement support for Tag_ABI_VFP_args
The Tag_ABI_VFP_args build attribute controls the procedure call standard
used for floating point parameters on ARM. The values are:
0 - Base AAPCS (FP Parameters passed in Core (Integer) registers
1 - VFP AAPCS (FP Parameters passed in FP registers)
2 - Toolchain specific (Neither Base or VFP)
3 - Compatible with all (No use of floating point parameters)

If the Tag_ABI_VFP_args build attribute is missing it has an implicit value
of 0.
    
We use the attribute in two ways:
- Detect a clash in calling convention between Base, VFP and Toolchain.
we follow ld.bfd's lead and do not error if there is a clash between an
implicit Base AAPCS caused by a missing attribute. Many projects
including the hard-float (VFP AAPCS) version of glibc contain assembler
files that do not use floating point but do not have Tag_ABI_VFP_args.
- Set the EF_ARM_ABI_FLOAT_SOFT or EF_ARM_ABI_FLOAT_HARD ELF header flag
for Base or VFP AAPCS respectively. This flag is used by some ELF
loaders.
    
References:
- Addenda to, and Errata in, the ABI for the ARM Architecture for
Tag_ABI_VFP_args
- Elf for the ARM Architecture for ELF header flags
    
Fixes PR36009
    
Differential Revision: https://reviews.llvm.org/D49993

llvm-svn: 338377
2018-07-31 13:41:59 +00:00
clang clang-format: try to make the doc for ConstructorInitializerAllOnOneLineOrOnePerLine more clear 2018-07-31 12:42:02 +00:00
clang-tools-extra [clangd] Report diagnostics even if WantDiags::No AST was reused 2018-07-31 11:47:52 +00:00
compiler-rt [XRay][compiler-rt] Update test to use similar structure 2018-07-31 04:47:37 +00:00
debuginfo-tests [debuginfo-tests] tweak new test to be compatible with wider range of compilers. 2018-07-31 13:19:01 +00:00
libclc atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics 2018-06-21 19:27:39 +00:00
libcxx Code cleanup - change naked 'throw' expressions to call helpre function '__throw_future_error'. The behavior change is that if you build libc++ with exceptions disabled, and then use that in a program that sets the value of the future twice (for example), it will now abort instead of behaving unpredictably. 2018-07-30 23:33:48 +00:00
libcxxabi [demangler] Fix an oss-fuzz bug from r338138 2018-07-28 04:06:30 +00:00
libunwind [CMake] Include CMakeDependentOption in libunwind 2018-07-24 23:42:51 +00:00
lld [ELF][ARM] Implement support for Tag_ABI_VFP_args 2018-07-31 13:41:59 +00:00
lldb Remove Stream::UnitTest 2018-07-31 01:21:36 +00:00
llgo
llvm AMDGPU: Fold undef fcanonicalize to qNaN 2018-07-31 13:34:31 +00:00
openmp [OpenMP] Fix tasking + parallel bug 2018-07-30 21:47:56 +00:00
parallel-libs
polly [test] Remove non-JSPON comments in JSCOP file. NFC. 2018-07-28 01:11:45 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.