From: Fangrui Song Date: Wed, 7 Jun 2023 04:02:51 +0000 (-0700) Subject: [M68k,MSP430,VE,Xtensa] Migrate to new encodeInstruction that uses SmallVectorImpl... X-Git-Tag: upstream/17.0.6~5889 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c6a69446e152975c66594061ee542ca8e4e98b6f;p=platform%2Fupstream%2Fllvm.git [M68k,MSP430,VE,Xtensa] Migrate to new encodeInstruction that uses SmallVectorImpl. NFC --- diff --git a/llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp b/llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp index d4fc051..7fc5395 100644 --- a/llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp +++ b/llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp @@ -65,7 +65,7 @@ public: ~M68kMCCodeEmitter() override {} - void encodeInstruction(const MCInst &MI, raw_ostream &OS, + void encodeInstruction(const MCInst &MI, SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const override; }; @@ -199,7 +199,8 @@ void M68kMCCodeEmitter::getMachineOpValue(const MCInst &MI, const MCOperand &Op, } } -void M68kMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, +void M68kMCCodeEmitter::encodeInstruction(const MCInst &MI, + SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const { unsigned Opcode = MI.getOpcode(); @@ -216,7 +217,7 @@ void M68kMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, int64_t InstSize = EncodedInst.getBitWidth(); for (uint64_t Word : Data) { for (int i = 0; i < 4 && InstSize > 0; ++i, InstSize -= 16) { - support::endian::write(OS, static_cast(Word), + support::endian::write(CB, static_cast(Word), support::big); Word >>= 16; } diff --git a/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp b/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp index 2b16c62..985906a 100644 --- a/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp +++ b/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp @@ -74,12 +74,13 @@ public: MSP430MCCodeEmitter(MCContext &ctx, MCInstrInfo const &MCII) : Ctx(ctx), MCII(MCII) {} - void encodeInstruction(const MCInst &MI, raw_ostream &OS, + void encodeInstruction(const MCInst &MI, SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const override; }; -void MSP430MCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, +void MSP430MCCodeEmitter::encodeInstruction(const MCInst &MI, + SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const { const MCInstrDesc &Desc = MCII.get(MI.getOpcode()); @@ -93,7 +94,7 @@ void MSP430MCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, size_t WordCount = Size / 2; while (WordCount--) { - support::endian::write(OS, (uint16_t)BinaryOpCode, support::little); + support::endian::write(CB, (uint16_t)BinaryOpCode, support::little); BinaryOpCode >>= 16; } } diff --git a/llvm/lib/Target/VE/MCTargetDesc/VEMCCodeEmitter.cpp b/llvm/lib/Target/VE/MCTargetDesc/VEMCCodeEmitter.cpp index 45facd3..bb643d2 100644 --- a/llvm/lib/Target/VE/MCTargetDesc/VEMCCodeEmitter.cpp +++ b/llvm/lib/Target/VE/MCTargetDesc/VEMCCodeEmitter.cpp @@ -48,7 +48,7 @@ public: VEMCCodeEmitter &operator=(const VEMCCodeEmitter &) = delete; ~VEMCCodeEmitter() override = default; - void encodeInstruction(const MCInst &MI, raw_ostream &OS, + void encodeInstruction(const MCInst &MI, SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const override; @@ -77,11 +77,12 @@ public: } // end anonymous namespace -void VEMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, +void VEMCCodeEmitter::encodeInstruction(const MCInst &MI, + SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const { uint64_t Bits = getBinaryCodeForInstr(MI, Fixups, STI); - support::endian::write(OS, Bits, support::little); + support::endian::write(CB, Bits, support::little); ++MCNumEmitted; // Keep track of the # of mi's emitted. } diff --git a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp index 1ef5b11..1afdbb3 100644 --- a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp +++ b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp @@ -43,7 +43,7 @@ public: ~XtensaMCCodeEmitter() {} // OVerride MCCodeEmitter. - void encodeInstruction(const MCInst &MI, raw_ostream &OS, + void encodeInstruction(const MCInst &MI, SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const override; @@ -122,7 +122,8 @@ MCCodeEmitter *llvm::createXtensaMCCodeEmitter(const MCInstrInfo &MCII, return new XtensaMCCodeEmitter(MCII, Ctx, true); } -void XtensaMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, +void XtensaMCCodeEmitter::encodeInstruction(const MCInst &MI, + SmallVectorImpl &CB, SmallVectorImpl &Fixups, const MCSubtargetInfo &STI) const { uint64_t Bits = getBinaryCodeForInstr(MI, Fixups, STI); @@ -132,7 +133,7 @@ void XtensaMCCodeEmitter::encodeInstruction(const MCInst &MI, raw_ostream &OS, // Little-endian insertion of Size bytes. unsigned ShiftValue = 0; for (unsigned I = 0; I != Size; ++I) { - OS << uint8_t(Bits >> ShiftValue); + CB.push_back(char(Bits >> ShiftValue)); ShiftValue += 8; } } else {