diff options
author | Shiva Chen <shiva0217@gmail.com> | 2018-02-02 06:01:02 +0000 |
---|---|---|
committer | Shiva Chen <shiva0217@gmail.com> | 2018-02-02 06:01:02 +0000 |
commit | 53489ada12e9e27a4863ad96adf7a64edf16eef3 (patch) | |
tree | 496f699a1fafb80029f722cd252e744581f72b71 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | 76c5ce518493669e23c73c02e616b4a5ca46ef63 (diff) | |
download | bcm5719-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.cpp | 13 |
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(); } |