aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
diff options
context:
space:
mode:
authorPeter Smith <peter.smith@linaro.org>2018-07-31 13:41:59 +0000
committerPeter Smith <peter.smith@linaro.org>2018-07-31 13:41:59 +0000
commit70997f9a4e4064f5ce157c63313b6b9e09081ac3 (patch)
treed2f227d01d382bc1b4a3bc7a5375dd52eb65eb9e /llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
parent4aec86d37a65758b2975a93d5f9c406a4610f052 (diff)
downloadllvm-70997f9a4e4064f5ce157c63313b6b9e09081ac3.zip
llvm-70997f9a4e4064f5ce157c63313b6b9e09081ac3.tar.gz
llvm-70997f9a4e4064f5ce157c63313b6b9e09081ac3.tar.bz2
[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
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp')
0 files changed, 0 insertions, 0 deletions