1fe6060f1SDimitry Andric //===- PPCXCOFFStreamer.h - XCOFF Object Output -----------------*- C++ -*-===// 2fe6060f1SDimitry Andric // 3*349cc55cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*349cc55cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*349cc55cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6fe6060f1SDimitry Andric // 7fe6060f1SDimitry Andric //===----------------------------------------------------------------------===// 8fe6060f1SDimitry Andric // 9fe6060f1SDimitry Andric // This is a custom MCXCOFFStreamer for PowerPC. 10fe6060f1SDimitry Andric // 11fe6060f1SDimitry Andric //===----------------------------------------------------------------------===// 12fe6060f1SDimitry Andric 13fe6060f1SDimitry Andric #ifndef LLVM_LIB_TARGET_PPC_MCXCOFFSTREAMER_PPCXCOFFSTREAMER_H 14fe6060f1SDimitry Andric #define LLVM_LIB_TARGET_PPC_MCXCOFFSTREAMER_PPCXCOFFSTREAMER_H 15fe6060f1SDimitry Andric 16fe6060f1SDimitry Andric #include "llvm/MC/MCXCOFFStreamer.h" 17fe6060f1SDimitry Andric 18fe6060f1SDimitry Andric namespace llvm { 19fe6060f1SDimitry Andric 20fe6060f1SDimitry Andric class PPCXCOFFStreamer : public MCXCOFFStreamer { 21fe6060f1SDimitry Andric public: 22fe6060f1SDimitry Andric PPCXCOFFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> MAB, 23fe6060f1SDimitry Andric std::unique_ptr<MCObjectWriter> OW, 24fe6060f1SDimitry Andric std::unique_ptr<MCCodeEmitter> Emitter); 25fe6060f1SDimitry Andric 26fe6060f1SDimitry Andric void emitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI) override; 27fe6060f1SDimitry Andric 28fe6060f1SDimitry Andric private: 29fe6060f1SDimitry Andric void emitPrefixedInstruction(const MCInst &Inst, const MCSubtargetInfo &STI); 30fe6060f1SDimitry Andric }; 31fe6060f1SDimitry Andric 32fe6060f1SDimitry Andric MCXCOFFStreamer *createPPCXCOFFStreamer(MCContext &Context, 33fe6060f1SDimitry Andric std::unique_ptr<MCAsmBackend> MAB, 34fe6060f1SDimitry Andric std::unique_ptr<MCObjectWriter> OW, 35fe6060f1SDimitry Andric std::unique_ptr<MCCodeEmitter> Emitter); 36fe6060f1SDimitry Andric } // end namespace llvm 37fe6060f1SDimitry Andric 38fe6060f1SDimitry Andric #endif // LLVM_LIB_TARGET_PPC_MCXCOFFSTREAMER_PPCXCOFFSTREAMER_H 39