aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
diff options
context:
space:
mode:
authorDjordje Todorovic <djordje.todorovic@htecgroup.com>2025-08-22 09:21:10 +0200
committerGitHub <noreply@github.com>2025-08-22 09:21:10 +0200
commit5050da7ba18fc876f80fbeaaca3564d3b4483bb8 (patch)
tree37f7d8a13d21e95254773fcad7bdbf21ef7c1af3 /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
parenta2f542b7a51cc3d8fb31541dbd0bbf2b497ceaa9 (diff)
downloadllvm-5050da7ba18fc876f80fbeaaca3564d3b4483bb8.zip
llvm-5050da7ba18fc876f80fbeaaca3564d3b4483bb8.tar.gz
llvm-5050da7ba18fc876f80fbeaaca3564d3b4483bb8.tar.bz2
[RISCV] Add initial assembler/MC layer support for big-endian (#146534)
This patch adds basic assembler and MC layer infrastructure for RISC-V big-endian targets (riscv32be/riscv64be): - Register big-endian targets in RISCVTargetMachine - Add big-endian data layout strings - Implement endianness-aware fixup application in assembler backend - Add byte swapping for data fixups on BE cores - Update MC layer components (AsmInfo, MCTargetDesc, Disassembler, AsmParser) This provides the foundation for BE support but does not yet include: - Codegen patterns for BE - Load/store instruction handling - BE-specific subtarget features
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
-rw-r--r--llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index d72df74..ac6684f 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -74,6 +74,10 @@ LLVMInitializeRISCVDisassembler() {
createRISCVDisassembler);
TargetRegistry::RegisterMCDisassembler(getTheRISCV64Target(),
createRISCVDisassembler);
+ TargetRegistry::RegisterMCDisassembler(getTheRISCV32beTarget(),
+ createRISCVDisassembler);
+ TargetRegistry::RegisterMCDisassembler(getTheRISCV64beTarget(),
+ createRISCVDisassembler);
}
static DecodeStatus DecodeGPRRegisterClass(MCInst &Inst, uint32_t RegNo,