diff options
author | Fangrui Song <i@maskray.me> | 2023-05-07 19:32:53 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2023-05-07 19:32:53 -0700 |
commit | 390643e3c5c3700bb3a79b21dca19b9f82b207bb (patch) | |
tree | 1051a3a1abed27606958f3bc1a6e630755282743 /llvm/lib/MC/MCDwarf.cpp | |
parent | 4c457e81c4ed78e237b408fb480909a956432638 (diff) | |
download | llvm-390643e3c5c3700bb3a79b21dca19b9f82b207bb.zip llvm-390643e3c5c3700bb3a79b21dca19b9f82b207bb.tar.gz llvm-390643e3c5c3700bb3a79b21dca19b9f82b207bb.tar.bz2 |
MCDwarfFrameEmitter::EncodeAdvanceLoc: use SmallVectorImpl instead of raw_ostream. NFC
Similar to 49488490d195591bfc90daef111cd7293f8c80aa.
Remove MCDwarfFrameEmitter::EmitAdvanceLoc which is only called once.
Diffstat (limited to 'llvm/lib/MC/MCDwarf.cpp')
-rw-r--r-- | llvm/lib/MC/MCDwarf.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index 3ee3603..6acfd08 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -1925,18 +1925,9 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB, } } -void MCDwarfFrameEmitter::EmitAdvanceLoc(MCObjectStreamer &Streamer, - uint64_t AddrDelta) { - MCContext &Context = Streamer.getContext(); - SmallString<256> Tmp; - raw_svector_ostream OS(Tmp); - MCDwarfFrameEmitter::EncodeAdvanceLoc(Context, AddrDelta, OS); - Streamer.emitBytes(OS.str()); -} - -void MCDwarfFrameEmitter::EncodeAdvanceLoc(MCContext &Context, +void MCDwarfFrameEmitter::encodeAdvanceLoc(MCContext &Context, uint64_t AddrDelta, - raw_ostream &OS) { + SmallVectorImpl<char> &Out) { // Scale the address delta by the minimum instruction length. AddrDelta = ScaleAddrDelta(Context, AddrDelta); if (AddrDelta == 0) @@ -1947,16 +1938,16 @@ void MCDwarfFrameEmitter::EncodeAdvanceLoc(MCContext &Context, if (isUIntN(6, AddrDelta)) { uint8_t Opcode = dwarf::DW_CFA_advance_loc | AddrDelta; - OS << Opcode; + Out.push_back(Opcode); } else if (isUInt<8>(AddrDelta)) { - OS << uint8_t(dwarf::DW_CFA_advance_loc1); - OS << uint8_t(AddrDelta); + Out.push_back(dwarf::DW_CFA_advance_loc1); + Out.push_back(AddrDelta); } else if (isUInt<16>(AddrDelta)) { - OS << uint8_t(dwarf::DW_CFA_advance_loc2); - support::endian::write<uint16_t>(OS, AddrDelta, E); + Out.push_back(dwarf::DW_CFA_advance_loc2); + support::endian::write<uint16_t>(Out, AddrDelta, E); } else { assert(isUInt<32>(AddrDelta)); - OS << uint8_t(dwarf::DW_CFA_advance_loc4); - support::endian::write<uint32_t>(OS, AddrDelta, E); + Out.push_back(dwarf::DW_CFA_advance_loc4); + support::endian::write<uint32_t>(Out, AddrDelta, E); } } |