aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCDwarf.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2023-05-07 19:32:53 -0700
committerFangrui Song <i@maskray.me>2023-05-07 19:32:53 -0700
commit390643e3c5c3700bb3a79b21dca19b9f82b207bb (patch)
tree1051a3a1abed27606958f3bc1a6e630755282743 /llvm/lib/MC/MCDwarf.cpp
parent4c457e81c4ed78e237b408fb480909a956432638 (diff)
downloadllvm-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.cpp27
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);
}
}