[llvm] 2f5a183 - [CSKY] Migrate to new encodeInstruction that uses SmallVectorImpl<char>. NFC

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 9 09:49:17 PDT 2023


Author: Fangrui Song
Date: 2023-08-09T09:49:12-07:00
New Revision: 2f5a183ff30667ce5d596e5ddd069f99a620cbeb

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

LOG: [CSKY] Migrate to new encodeInstruction that uses SmallVectorImpl<char>. NFC

Added: 
    

Modified: 
    llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.cpp
    llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.h

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.cpp b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.cpp
index ea41d53ef30fde..4437c5c998ea6e 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.cpp
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.cpp
@@ -57,17 +57,14 @@ CSKYMCCodeEmitter::getImmOpValueMSBSize(const MCInst &MI, unsigned Idx,
   return MSB.getImm() - LSB.getImm();
 }
 
-static void writeData(uint32_t Bin, unsigned Size, raw_ostream &OS) {
-  uint16_t LO16 = static_cast<uint16_t>(Bin);
-  uint16_t HI16 = static_cast<uint16_t>(Bin >> 16);
-
+static void writeData(uint32_t Bin, unsigned Size, SmallVectorImpl<char> &CB) {
   if (Size == 4)
-    support::endian::write<uint16_t>(OS, HI16, support::little);
-
-  support::endian::write<uint16_t>(OS, LO16, support::little);
+    support::endian::write(CB, static_cast<uint16_t>(Bin >> 16),
+                           support::little);
+  support::endian::write(CB, static_cast<uint16_t>(Bin), support::little);
 }
 
-void CSKYMCCodeEmitter::expandJBTF(const MCInst &MI, raw_ostream &OS,
+void CSKYMCCodeEmitter::expandJBTF(const MCInst &MI, SmallVectorImpl<char> &CB,
                                    SmallVectorImpl<MCFixup> &Fixups,
                                    const MCSubtargetInfo &STI) const {
 
@@ -80,7 +77,7 @@ void CSKYMCCodeEmitter::expandJBTF(const MCInst &MI, raw_ostream &OS,
           .addOperand(MI.getOperand(0))
           .addImm(6);
   Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI);
-  writeData(Binary, 2, OS);
+  writeData(Binary, 2, CB);
 
   if (!STI.hasFeature(CSKY::Has2E3))
     TmpInst = MCInstBuilder(CSKY::BR32)
@@ -90,10 +87,10 @@ void CSKYMCCodeEmitter::expandJBTF(const MCInst &MI, raw_ostream &OS,
     TmpInst = MCInstBuilder(CSKY::JMPI32).addOperand(MI.getOperand(2));
   Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI);
   Fixups[Fixups.size() - 1].setOffset(2);
-  writeData(Binary, 4, OS);
+  writeData(Binary, 4, CB);
 }
 
-void CSKYMCCodeEmitter::expandNEG(const MCInst &MI, raw_ostream &OS,
+void CSKYMCCodeEmitter::expandNEG(const MCInst &MI, SmallVectorImpl<char> &CB,
                                   SmallVectorImpl<MCFixup> &Fixups,
                                   const MCSubtargetInfo &STI) const {
 
@@ -105,17 +102,17 @@ void CSKYMCCodeEmitter::expandNEG(const MCInst &MI, raw_ostream &OS,
                 .addOperand(MI.getOperand(0))
                 .addOperand(MI.getOperand(1));
   Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI);
-  writeData(Binary, Size, OS);
+  writeData(Binary, Size, CB);
 
   TmpInst = MCInstBuilder(Size == 4 ? CSKY::ADDI32 : CSKY::ADDI16)
                 .addOperand(MI.getOperand(0))
                 .addOperand(MI.getOperand(0))
                 .addImm(1);
   Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI);
-  writeData(Binary, Size, OS);
+  writeData(Binary, Size, CB);
 }
 
-void CSKYMCCodeEmitter::expandRSUBI(const MCInst &MI, raw_ostream &OS,
+void CSKYMCCodeEmitter::expandRSUBI(const MCInst &MI, SmallVectorImpl<char> &CB,
                                     SmallVectorImpl<MCFixup> &Fixups,
                                     const MCSubtargetInfo &STI) const {
 
@@ -127,17 +124,18 @@ void CSKYMCCodeEmitter::expandRSUBI(const MCInst &MI, raw_ostream &OS,
                 .addOperand(MI.getOperand(0))
                 .addOperand(MI.getOperand(1));
   Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI);
-  writeData(Binary, Size, OS);
+  writeData(Binary, Size, CB);
 
   TmpInst = MCInstBuilder(Size == 4 ? CSKY::ADDI32 : CSKY::ADDI16)
                 .addOperand(MI.getOperand(0))
                 .addOperand(MI.getOperand(0))
                 .addImm(MI.getOperand(2).getImm() + 1);
   Binary = getBinaryCodeForInstr(TmpInst, Fixups, STI);
-  writeData(Binary, Size, OS);
+  writeData(Binary, Size, CB);
 }
 
-void CSKYMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS,
+void CSKYMCCodeEmitter::encodeInstruction(const MCInst &MI,
+                                          SmallVectorImpl<char> &CB,
                                           SmallVectorImpl<MCFixup> &Fixups,
                                           const MCSubtargetInfo &STI) const {
   const MCInstrDesc &Desc = MII.get(MI.getOpcode());
@@ -151,17 +149,17 @@ void CSKYMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS,
     break;
   case CSKY::JBT_E:
   case CSKY::JBF_E:
-    expandJBTF(MI, OS, Fixups, STI);
+    expandJBTF(MI, CB, Fixups, STI);
     MCNumEmitted += 2;
     return;
   case CSKY::NEG32:
   case CSKY::NEG16:
-    expandNEG(MI, OS, Fixups, STI);
+    expandNEG(MI, CB, Fixups, STI);
     MCNumEmitted += 2;
     return;
   case CSKY::RSUBI32:
   case CSKY::RSUBI16:
-    expandRSUBI(MI, OS, Fixups, STI);
+    expandRSUBI(MI, CB, Fixups, STI);
     MCNumEmitted += 2;
     return;
   case CSKY::JBSR32:
@@ -229,16 +227,7 @@ void CSKYMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS,
   }
 
   ++MCNumEmitted;
-
-  uint32_t Bin = getBinaryCodeForInstr(TmpInst, Fixups, STI);
-
-  uint16_t LO16 = static_cast<uint16_t>(Bin);
-  uint16_t HI16 = static_cast<uint16_t>(Bin >> 16);
-
-  if (Size == 4)
-    support::endian::write<uint16_t>(OS, HI16, support::little);
-
-  support::endian::write<uint16_t>(OS, LO16, support::little);
+  writeData(getBinaryCodeForInstr(TmpInst, Fixups, STI), Size, CB);
 }
 
 unsigned

diff  --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.h b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.h
index 128430197cc530..0e47d259d43f5e 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.h
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCCodeEmitter.h
@@ -32,7 +32,7 @@ class CSKYMCCodeEmitter : public MCCodeEmitter {
 
   ~CSKYMCCodeEmitter() {}
 
-  void encodeInstruction(const MCInst &Inst, raw_ostream &OS,
+  void encodeInstruction(const MCInst &Inst, SmallVectorImpl<char> &CB,
                          SmallVectorImpl<MCFixup> &Fixups,
                          const MCSubtargetInfo &STI) const override;
 
@@ -172,13 +172,13 @@ class CSKYMCCodeEmitter : public MCCodeEmitter {
     return 0;
   }
 
-  void expandJBTF(const MCInst &MI, raw_ostream &OS,
+  void expandJBTF(const MCInst &MI, SmallVectorImpl<char> &CB,
                   SmallVectorImpl<MCFixup> &Fixups,
                   const MCSubtargetInfo &STI) const;
-  void expandNEG(const MCInst &MI, raw_ostream &OS,
+  void expandNEG(const MCInst &MI, SmallVectorImpl<char> &CB,
                  SmallVectorImpl<MCFixup> &Fixups,
                  const MCSubtargetInfo &STI) const;
-  void expandRSUBI(const MCInst &MI, raw_ostream &OS,
+  void expandRSUBI(const MCInst &MI, SmallVectorImpl<char> &CB,
                    SmallVectorImpl<MCFixup> &Fixups,
                    const MCSubtargetInfo &STI) const;
 };


        


More information about the llvm-commits mailing list