mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 06:00:28 +00:00
[AArch64] Clean up the ELF streamer a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238102 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
24b6dadf2d
commit
083d79a583
@ -60,7 +60,7 @@ AArch64TargetAsmStreamer::AArch64TargetAsmStreamer(MCStreamer &S,
|
||||
: AArch64TargetStreamer(S), OS(OS) {}
|
||||
|
||||
void AArch64TargetAsmStreamer::emitInst(uint32_t Inst) {
|
||||
OS << "\t.inst\t0x" << utohexstr(Inst) << "\n";
|
||||
OS << "\t.inst\t0x" << Twine::utohexstr(Inst) << "\n";
|
||||
}
|
||||
|
||||
class AArch64TargetELFStreamer : public AArch64TargetStreamer {
|
||||
@ -95,8 +95,6 @@ public:
|
||||
: MCELFStreamer(Context, TAB, OS, Emitter), MappingSymbolCounter(0),
|
||||
LastEMS(EMS_None) {}
|
||||
|
||||
~AArch64ELFStreamer() override {}
|
||||
|
||||
void ChangeSection(MCSection *Section, const MCExpr *Subsection) override {
|
||||
// We have to keep track of the mapping symbol state of any sections we
|
||||
// use. Each one should start off as EMS_None, which is provided as the
|
||||
@ -117,15 +115,8 @@ public:
|
||||
}
|
||||
|
||||
void emitInst(uint32_t Inst) {
|
||||
char Buffer[4];
|
||||
const bool LittleEndian = getContext().getAsmInfo()->isLittleEndian();
|
||||
|
||||
EmitA64MappingSymbol();
|
||||
for (unsigned II = 0; II != 4; ++II) {
|
||||
const unsigned I = LittleEndian ? (4 - II - 1) : II;
|
||||
Buffer[4 - II - 1] = uint8_t(Inst >> I * CHAR_BIT);
|
||||
}
|
||||
MCELFStreamer::EmitBytes(StringRef(Buffer, 4));
|
||||
MCELFStreamer::EmitIntValue(Inst, 4);
|
||||
}
|
||||
|
||||
/// This is one of the functions used to emit data into an ELF section, so the
|
||||
@ -189,8 +180,6 @@ private:
|
||||
|
||||
DenseMap<const MCSection *, ElfMappingSymbol> LastMappingSymbols;
|
||||
ElfMappingSymbol LastEMS;
|
||||
|
||||
/// @}
|
||||
};
|
||||
} // end anonymous namespace
|
||||
|
||||
|
@ -223,7 +223,7 @@ void ARMTargetAsmStreamer::emitInst(uint32_t Inst, char Suffix) {
|
||||
OS << "\t.inst";
|
||||
if (Suffix)
|
||||
OS << "." << Suffix;
|
||||
OS << "\t0x" << utohexstr(Inst) << "\n";
|
||||
OS << "\t0x" << Twine::utohexstr(Inst) << "\n";
|
||||
}
|
||||
|
||||
void ARMTargetAsmStreamer::emitUnwindRaw(int64_t Offset,
|
||||
@ -232,7 +232,7 @@ void ARMTargetAsmStreamer::emitUnwindRaw(int64_t Offset,
|
||||
for (SmallVectorImpl<uint8_t>::const_iterator OCI = Opcodes.begin(),
|
||||
OCE = Opcodes.end();
|
||||
OCI != OCE; ++OCI)
|
||||
OS << ", 0x" << utohexstr(*OCI);
|
||||
OS << ", 0x" << Twine::utohexstr(*OCI);
|
||||
OS << '\n';
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ aarch64_inst:
|
||||
// CHECK-ASM: .globl aarch64_inst
|
||||
// CHECK-ASM: .type aarch64_inst,@function
|
||||
// CHECK-ASM: aarch64_inst:
|
||||
// CHECK-ASM: .inst 0x5E104020
|
||||
// CHECK-ASM: .inst 0x5e104020
|
||||
|
||||
// CHECK-OBJ: Section {
|
||||
// CHECK-OBJ: Name: .inst.aarch64_inst
|
||||
|
@ -15,6 +15,6 @@ emit_asm:
|
||||
@ CHECK: .globl emit_asm
|
||||
@ CHECK: .type emit_asm,%function
|
||||
@ CHECK: emit_asm:
|
||||
@ CHECK: inst.w 0xF2400000
|
||||
@ CHECK: inst.w 0xF2C00000
|
||||
@ CHECK: inst.w 0xf2400000
|
||||
@ CHECK: inst.w 0xf2c00000
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user