MCObjectStreamer.h [plain text]
#ifndef LLVM_MC_MCOBJECTSTREAMER_H
#define LLVM_MC_MCOBJECTSTREAMER_H
#include "llvm/MC/MCStreamer.h"
namespace llvm {
class MCAssembler;
class MCCodeEmitter;
class MCSectionData;
class MCExpr;
class MCFragment;
class MCDataFragment;
class TargetAsmBackend;
class raw_ostream;
class MCObjectStreamer : public MCStreamer {
MCAssembler *Assembler;
MCSectionData *CurSectionData;
protected:
MCObjectStreamer(MCContext &Context, TargetAsmBackend &TAB,
raw_ostream &_OS, MCCodeEmitter *_Emitter,
bool _PadSectionToAlignment);
~MCObjectStreamer();
MCSectionData *getCurrentSectionData() const {
return CurSectionData;
}
MCFragment *getCurrentFragment() const;
MCDataFragment *getOrCreateDataFragment() const;
const MCExpr *AddValueSymbols(const MCExpr *Value);
public:
MCAssembler &getAssembler() { return *Assembler; }
virtual void SwitchSection(const MCSection *Section);
virtual void Finish();
};
}
#endif