[llvm] d421c5f - [RISCV] Directly create MCOperands from addImplySP in Disassembler. NFC

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu May 4 22:19:23 PDT 2023


Author: Craig Topper
Date: 2023-05-04T22:18:33-07:00
New Revision: d421c5f81acb5933434bec129fdf16321b951fd8

URL: https://github.com/llvm/llvm-project/commit/d421c5f81acb5933434bec129fdf16321b951fd8
DIFF: https://github.com/llvm/llvm-project/commit/d421c5f81acb5933434bec129fdf16321b951fd8.diff

LOG: [RISCV] Directly create MCOperands from addImplySP in Disassembler. NFC

Instead of passing a constant to DecodeGPRRegisterClass, just create
the X2 register directly.

Added: 
    

Modified: 
    llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index 2121a0e9feabc..7c7aad05fa929 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -258,8 +258,7 @@ static DecodeStatus decodeVMaskReg(MCInst &Inst, uint64_t RegNo,
 
 // Add implied SP operand for instructions *SP compressed instructions. The SP
 // operand isn't explicitly encoded in the instruction.
-static void addImplySP(MCInst &Inst, int64_t Address,
-                       const MCDisassembler *Decoder) {
+static void addImplySP(MCInst &Inst) {
   if (Inst.getOpcode() == RISCV::C_LWSP || Inst.getOpcode() == RISCV::C_SWSP ||
       Inst.getOpcode() == RISCV::C_LDSP || Inst.getOpcode() == RISCV::C_SDSP ||
       Inst.getOpcode() == RISCV::C_FLWSP ||
@@ -267,11 +266,11 @@ static void addImplySP(MCInst &Inst, int64_t Address,
       Inst.getOpcode() == RISCV::C_FLDSP ||
       Inst.getOpcode() == RISCV::C_FSDSP ||
       Inst.getOpcode() == RISCV::C_ADDI4SPN) {
-    DecodeGPRRegisterClass(Inst, 2, Address, Decoder);
+    Inst.addOperand(MCOperand::createReg(RISCV::X2));
   }
   if (Inst.getOpcode() == RISCV::C_ADDI16SP) {
-    DecodeGPRRegisterClass(Inst, 2, Address, Decoder);
-    DecodeGPRRegisterClass(Inst, 2, Address, Decoder);
+    Inst.addOperand(MCOperand::createReg(RISCV::X2));
+    Inst.addOperand(MCOperand::createReg(RISCV::X2));
   }
 }
 
@@ -280,7 +279,7 @@ static DecodeStatus decodeUImmOperand(MCInst &Inst, uint32_t Imm,
                                       int64_t Address,
                                       const MCDisassembler *Decoder) {
   assert(isUInt<N>(Imm) && "Invalid immediate");
-  addImplySP(Inst, Address, Decoder);
+  addImplySP(Inst);
   Inst.addOperand(MCOperand::createImm(Imm));
   return MCDisassembler::Success;
 }
@@ -299,7 +298,7 @@ static DecodeStatus decodeSImmOperand(MCInst &Inst, uint32_t Imm,
                                       int64_t Address,
                                       const MCDisassembler *Decoder) {
   assert(isUInt<N>(Imm) && "Invalid immediate");
-  addImplySP(Inst, Address, Decoder);
+  addImplySP(Inst);
   // Sign-extend the number in the bottom N bits of Imm
   Inst.addOperand(MCOperand::createImm(SignExtend64<N>(Imm)));
   return MCDisassembler::Success;


        


More information about the llvm-commits mailing list