LLVM API Documentation

ARMWinCOFFStreamer.cpp
Go to the documentation of this file.
00001 //===-- ARMWinCOFFStreamer.cpp - ARM Target WinCOFF Streamer ----*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 
00010 #include "ARMMCTargetDesc.h"
00011 #include "llvm/MC/MCWinCOFFStreamer.h"
00012 
00013 using namespace llvm;
00014 
00015 namespace {
00016 class ARMWinCOFFStreamer : public MCWinCOFFStreamer {
00017 public:
00018   ARMWinCOFFStreamer(MCContext &C, MCAsmBackend &AB, MCCodeEmitter &CE,
00019                      raw_ostream &OS)
00020     : MCWinCOFFStreamer(C, AB, CE, OS) { }
00021 
00022   void EmitAssemblerFlag(MCAssemblerFlag Flag) override;
00023   void EmitThumbFunc(MCSymbol *Symbol) override;
00024 };
00025 
00026 void ARMWinCOFFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
00027   switch (Flag) {
00028   default: llvm_unreachable("not implemented");
00029   case MCAF_SyntaxUnified:
00030   case MCAF_Code16:
00031     break;
00032   }
00033 }
00034 
00035 void ARMWinCOFFStreamer::EmitThumbFunc(MCSymbol *Symbol) {
00036   getAssembler().setIsThumbFunc(Symbol);
00037 }
00038 }
00039 
00040 namespace llvm {
00041 MCStreamer *createARMWinCOFFStreamer(MCContext &Context, MCAsmBackend &MAB,
00042                                      MCCodeEmitter &Emitter, raw_ostream &OS) {
00043   return new ARMWinCOFFStreamer(Context, MAB, Emitter, OS);
00044 }
00045 }
00046