aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorZi Xuan Wu <zixuan.wu@linux.alibaba.com>2022-03-18 15:40:14 +0800
committerZi Xuan Wu <zixuan.wu@linux.alibaba.com>2022-03-24 14:14:04 +0800
commit582836faafcb458161947a72df27752fe5f76171 (patch)
tree4d77474ac11e3006f9ad6458617d4c85561a8e14 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parentb8388fa319bc68bee396a14857331fb2e7b815bd (diff)
downloadllvm-582836faafcb458161947a72df27752fe5f76171.zip
llvm-582836faafcb458161947a72df27752fe5f76171.tar.gz
llvm-582836faafcb458161947a72df27752fe5f76171.tar.bz2
[CSKY] Enhance asm parser and relocation fixup for some special symbol address instruction
Add processing of parsing and emiting lrw/jsri/jmpi instruction, including related fixup and relocation. Add relax support about pseudo instructions such as jbr/jbsr. Add objdump format support like arm in llvm-objdump.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index c8c5126..a9ce463 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -441,8 +441,13 @@ static bool isArmElf(const ObjectFile *Obj) {
return Elf && Elf->getEMachine() == ELF::EM_ARM;
}
+static bool isCSKYElf(const ObjectFile *Obj) {
+ const auto *Elf = dyn_cast<ELFObjectFileBase>(Obj);
+ return Elf && Elf->getEMachine() == ELF::EM_CSKY;
+}
+
static bool hasMappingSymbols(const ObjectFile *Obj) {
- return isArmElf(Obj) || isAArch64Elf(Obj);
+ return isArmElf(Obj) || isAArch64Elf(Obj) || isCSKYElf(Obj) ;
}
static void printRelocation(formatted_raw_ostream &OS, StringRef FileName,