virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace,
bool UseSet = false);
+ virtual void EmitIntValue(uint64_t Value, unsigned Size,
+ unsigned AddrSpace = 0);
virtual void EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace = 0);
EmitEOL();
}
+void MCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size,
+ unsigned AddrSpace) {
+ EmitValue(MCConstantExpr::Create(Value, getContext()), Size, AddrSpace);
+}
+
void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size,
unsigned AddrSpace, bool UseSet) {
assert(CurSection && "Cannot emit contents before setting section!");
void MCAsmStreamer::EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace) {
int64_t IntValue;
if (Value->EvaluateAsAbsolute(IntValue)) {
- SmallString<32> Tmp;
- raw_svector_ostream OSE(Tmp);
- MCObjectWriter::EncodeULEB128(IntValue, OSE);
- EmitBytes(OSE.str(), AddrSpace);
+ EmitULEB128IntValue(IntValue, AddrSpace);
return;
}
assert(MAI.hasLEB128() && "Cannot print a .uleb");
void MCAsmStreamer::EmitSLEB128Value(const MCExpr *Value, unsigned AddrSpace) {
int64_t IntValue;
if (Value->EvaluateAsAbsolute(IntValue)) {
- SmallString<32> Tmp;
- raw_svector_ostream OSE(Tmp);
- MCObjectWriter::EncodeSLEB128(IntValue, OSE);
- EmitBytes(OSE.str(), AddrSpace);
+ EmitSLEB128IntValue(IntValue, AddrSpace);
return;
}
assert(MAI.hasLEB128() && "Cannot print a .sleb");