summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/ELFObjectFile.cpp
diff options
context:
space:
mode:
authorShiva Chen <shiva0217@gmail.com>2018-02-02 06:01:02 +0000
committerShiva Chen <shiva0217@gmail.com>2018-02-02 06:01:02 +0000
commit53489ada12e9e27a4863ad96adf7a64edf16eef3 (patch)
tree496f699a1fafb80029f722cd252e744581f72b71 /llvm/lib/Object/ELFObjectFile.cpp
parent76c5ce518493669e23c73c02e616b4a5ca46ef63 (diff)
downloadbcm5719-llvm-53489ada12e9e27a4863ad96adf7a64edf16eef3.tar.gz
bcm5719-llvm-53489ada12e9e27a4863ad96adf7a64edf16eef3.zip
[RISCV] Add ELFObjectFileBase::getRISCVFeatures let llvm-objdump could get RISCV target feature
llvm-objdump could get C feature by ELF::EF_RISCV_RVC e_flag, so then we don't have to add -mattr=+c on the command line. Differential Revision: https://reviews.llvm.org/D42629 llvm-svn: 324058
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
-rw-r--r--llvm/lib/Object/ELFObjectFile.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp
index 3c1bdf5a1de..e806c8f28b1 100644
--- a/llvm/lib/Object/ELFObjectFile.cpp
+++ b/llvm/lib/Object/ELFObjectFile.cpp
@@ -238,12 +238,25 @@ SubtargetFeatures ELFObjectFileBase::getARMFeatures() const {
return Features;
}
+SubtargetFeatures ELFObjectFileBase::getRISCVFeatures() const {
+ SubtargetFeatures Features;
+ unsigned PlatformFlags = getPlatformFlags();
+
+ if (PlatformFlags & ELF::EF_RISCV_RVC) {
+ Features.AddFeature("c");
+ }
+
+ return Features;
+}
+
SubtargetFeatures ELFObjectFileBase::getFeatures() const {
switch (getEMachine()) {
case ELF::EM_MIPS:
return getMIPSFeatures();
case ELF::EM_ARM:
return getARMFeatures();
+ case ELF::EM_RISCV:
+ return getRISCVFeatures();
default:
return SubtargetFeatures();
}
OpenPOWER on IntegriCloud