brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 486795f Raw
50 lines · c
1//===- X86TargetStreamer.h ------------------------------*- C++ -*---------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86TARGETSTREAMER_H10#define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86TARGETSTREAMER_H11 12#include "llvm/MC/MCStreamer.h"13 14namespace llvm {15 16/// X86 target streamer implementing x86-only assembly directives.17class X86TargetStreamer : public MCTargetStreamer {18public:19  X86TargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}20 21  virtual void emitCode16() {}22  virtual void emitCode32() {}23  virtual void emitCode64() {}24 25  virtual bool emitFPOProc(const MCSymbol *ProcSym, unsigned ParamsSize,26                           SMLoc L = {}) {27    return false;28  }29  virtual bool emitFPOEndPrologue(SMLoc L = {}) { return false; }30  virtual bool emitFPOEndProc(SMLoc L = {}) { return false; };31  virtual bool emitFPOData(const MCSymbol *ProcSym, SMLoc L = {}) {32    return false;33  }34  virtual bool emitFPOPushReg(MCRegister Reg, SMLoc L = {}) { return false; }35  virtual bool emitFPOStackAlloc(unsigned StackAlloc, SMLoc L = {}) {36    return false;37  }38  virtual bool emitFPOStackAlign(unsigned Align, SMLoc L = {}) { return false; }39  virtual bool emitFPOSetFrame(MCRegister Reg, SMLoc L = {}) { return false; }40};41 42/// Implements X86-only null emission.43inline MCTargetStreamer *createX86NullTargetStreamer(MCStreamer &S) {44  return new X86TargetStreamer(S);45}46 47} // end namespace llvm48 49#endif50