llvm-65816/lib/Target/WDC65816/MCTargetDesc/WDC65816TargetStreamer.h

54 lines
1.5 KiB
C++

//
// WDC65816TargetAsmStreamer.h
// llvm
//
// Created by Jeremy Rand on 2016-04-11.
// Copyright © 2016 Jeremy Rand. All rights reserved.
//
#ifndef WDC65816TargetStreamer_h
#define WDC65816TargetStreamer_h
#include "llvm/MC/MCStreamer.h"
namespace llvm {
class WDC65816TargetStreamer : public MCTargetStreamer {
virtual void anchor();
public:
virtual void EmitCaseDirective(void) = 0;
virtual void EmitKeepDirective(StringRef filename) = 0;
virtual void EmitSegStartDirective(StringRef filename) = 0;
virtual void EmitSegEndDirective(void) = 0;
virtual void EmitFunctionEntryLabel(StringRef function) = 0;
virtual void EmitInstruction(StringRef instruction) = 0;
};
class WDC65816TargetAsmStreamer : public WDC65816TargetStreamer {
formatted_raw_ostream &OS;
StringRef indent;
int indentlen;
StringRef &trimFilename(StringRef &filename);
public:
WDC65816TargetAsmStreamer(formatted_raw_ostream &OS) : OS(OS), indent(" "), indentlen(11) {}
virtual ~WDC65816TargetAsmStreamer();
virtual void EmitCaseDirective(void);
virtual void EmitKeepDirective(StringRef filename);
virtual void EmitSegStartDirective(StringRef filename);
virtual void EmitSegEndDirective(void);
virtual void EmitFunctionEntryLabel(StringRef function);
virtual void EmitInstruction(StringRef instruction);
};
}
#endif /* WDC65816TargetStreamer_h */