aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorSam Elliott <aelliott@qti.qualcomm.com>2025-08-07 11:28:07 -0700
committerGitHub <noreply@github.com>2025-08-07 11:28:07 -0700
commit4e11f89904dc9b77ef44b01c68742e5b00bfdf21 (patch)
treea9999c374a205c55b567290d2d35a1ee5ea6e44a /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent1e2e903684719a0bdf559af261ffff9f551f4ebb (diff)
downloadllvm-4e11f89904dc9b77ef44b01c68742e5b00bfdf21.zip
llvm-4e11f89904dc9b77ef44b01c68742e5b00bfdf21.tar.gz
llvm-4e11f89904dc9b77ef44b01c68742e5b00bfdf21.tar.bz2
[RISCV] Basic Objdump Mapping Symbol Support (#151452)
This implements very basic support for RISC-V mapping symbols in llvm-objdump, sharing the implementation with how Arm/AArch64/CSKY implement this feature. This only supports the `$x` (instruction) and `$d` (data) mapping symbols for RISC-V, and not the version of `$x` which includes an architecture string suffix.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index c19c698..815759d 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -636,8 +636,14 @@ static bool isCSKYElf(const ObjectFile &Obj) {
return Elf && Elf->getEMachine() == ELF::EM_CSKY;
}
+static bool isRISCVElf(const ObjectFile &Obj) {
+ const auto *Elf = dyn_cast<ELFObjectFileBase>(&Obj);
+ return Elf && Elf->getEMachine() == ELF::EM_RISCV;
+}
+
static bool hasMappingSymbols(const ObjectFile &Obj) {
- return isArmElf(Obj) || isAArch64Elf(Obj) || isCSKYElf(Obj);
+ return isArmElf(Obj) || isAArch64Elf(Obj) || isCSKYElf(Obj) ||
+ isRISCVElf(Obj);
}
static void printRelocation(formatted_raw_ostream &OS, StringRef FileName,