X86TargetStreamer.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  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-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. #ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86TARGETSTREAMER_H
  9. #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86TARGETSTREAMER_H
  10. #include "llvm/MC/MCStreamer.h"
  11. namespace llvm {
  12. /// X86 target streamer implementing x86-only assembly directives.
  13. class X86TargetStreamer : public MCTargetStreamer {
  14. public:
  15. X86TargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}
  16. virtual bool emitFPOProc(const MCSymbol *ProcSym, unsigned ParamsSize,
  17. SMLoc L = {}) = 0;
  18. virtual bool emitFPOEndPrologue(SMLoc L = {}) = 0;
  19. virtual bool emitFPOEndProc(SMLoc L = {}) = 0;
  20. virtual bool emitFPOData(const MCSymbol *ProcSym, SMLoc L = {}) = 0;
  21. virtual bool emitFPOPushReg(unsigned Reg, SMLoc L = {}) = 0;
  22. virtual bool emitFPOStackAlloc(unsigned StackAlloc, SMLoc L = {}) = 0;
  23. virtual bool emitFPOStackAlign(unsigned Align, SMLoc L = {}) = 0;
  24. virtual bool emitFPOSetFrame(unsigned Reg, SMLoc L = {}) = 0;
  25. };
  26. } // end namespace llvm
  27. #endif