summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
diff options
context:
space:
mode:
authorOmair Javaid <omair.javaid@linaro.org>2016-02-05 14:37:53 +0000
committerOmair Javaid <omair.javaid@linaro.org>2016-02-05 14:37:53 +0000
commit0a767225187e1950afb60e39b0fbf814b1ca3f26 (patch)
treedf905c00f564f73de4ce3bf463feddda78002afc /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
parent0c9772e8742645f65b6e657e9ec77d1c3b27798f (diff)
downloadbcm5719-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.cpp9
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 &section_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;
OpenPOWER on IntegriCloud