diff options
author | Omair Javaid <omair.javaid@linaro.org> | 2016-02-05 14:37:53 +0000 |
---|---|---|
committer | Omair Javaid <omair.javaid@linaro.org> | 2016-02-05 14:37:53 +0000 |
commit | 0a767225187e1950afb60e39b0fbf814b1ca3f26 (patch) | |
tree | df905c00f564f73de4ce3bf463feddda78002afc /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | |
parent | 0c9772e8742645f65b6e657e9ec77d1c3b27798f (diff) | |
download | bcm5719-llvm-0a767225187e1950afb60e39b0fbf814b1ca3f26.tar.gz bcm5719-llvm-0a767225187e1950afb60e39b0fbf814b1ca3f26.zip |
Add support to detect arm hard float ABI based binaries for ABISysV_arm
This patch adds logic to detect if underlying binary is using arm hard float abi and use that information while handling return values in ABISysV_arm.
Differential revision: http://reviews.llvm.org/D16627
llvm-svn: 259885
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp')
-rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index 67be1461d4d..61e5896b862 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -1562,6 +1562,15 @@ ObjectFileELF::GetSectionHeaderInfo(SectionHeaderColl §ion_headers, } } + if (arch_spec.GetMachine() == llvm::Triple::arm || + arch_spec.GetMachine() == llvm::Triple::thumb) + { + if (header.e_flags & llvm::ELF::EF_ARM_SOFT_FLOAT) + arch_spec.SetFlags (ArchSpec::eARM_abi_soft_float); + else if (header.e_flags & llvm::ELF::EF_ARM_VFP_FLOAT) + arch_spec.SetFlags (ArchSpec::eARM_abi_hard_float); + } + // If there are no section headers we are done. if (header.e_shnum == 0) return 0; |