1 //===- PPCXCOFFStreamer.h - XCOFF Object Output -----------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This is a custom MCXCOFFStreamer for PowerPC.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_LIB_TARGET_PPC_MCXCOFFSTREAMER_PPCXCOFFSTREAMER_H
15 #define LLVM_LIB_TARGET_PPC_MCXCOFFSTREAMER_PPCXCOFFSTREAMER_H
16 
17 #include "llvm/MC/MCXCOFFStreamer.h"
18 
19 namespace llvm {
20 
21 class PPCXCOFFStreamer : public MCXCOFFStreamer {
22 public:
23   PPCXCOFFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> MAB,
24                    std::unique_ptr<MCObjectWriter> OW,
25                    std::unique_ptr<MCCodeEmitter> Emitter);
26 
27   void emitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI) override;
28 
29 private:
30   void emitPrefixedInstruction(const MCInst &Inst, const MCSubtargetInfo &STI);
31 };
32 
33 MCXCOFFStreamer *createPPCXCOFFStreamer(MCContext &Context,
34                                         std::unique_ptr<MCAsmBackend> MAB,
35                                         std::unique_ptr<MCObjectWriter> OW,
36                                         std::unique_ptr<MCCodeEmitter> Emitter);
37 } // end namespace llvm
38 
39 #endif // LLVM_LIB_TARGET_PPC_MCXCOFFSTREAMER_PPCXCOFFSTREAMER_H
40