Files
clang-p2996/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
Paul Bowen-Huggett bc37fea107 [RISCV] Fix the disassembler's handling of C.LUI when imm=0 (#133450)
Fix for #133446.

According to the RISC-V spec: "C.LUI is valid only when rd≠{x0,x2}, and
when the immediate is not equal to zero. The code points with imm=0 are
reserved".

This change makes the disassembler consider code points with imm=0 as
illegal. It introduces a test which exercises every C.LUI opcode
including the illegal ones but excluding those assigned to C.ADDI16SP).
Output for +c, +c +Zcmop, and +c +no-rvc-hints is checked.
2025-03-28 11:18:21 -07:00

33 KiB