diff options
author | Djordje Todorovic <djordje.todorovic@htecgroup.com> | 2025-08-22 09:21:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-22 09:21:10 +0200 |
commit | 5050da7ba18fc876f80fbeaaca3564d3b4483bb8 (patch) | |
tree | 37f7d8a13d21e95254773fcad7bdbf21ef7c1af3 /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | |
parent | a2f542b7a51cc3d8fb31541dbd0bbf2b497ceaa9 (diff) | |
download | llvm-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.cpp | 4 |
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, |