X86TargetStreamer.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 = {}) {
  18. return false;
  19. }
  20. virtual bool emitFPOEndPrologue(SMLoc L = {}) { return false; }
  21. virtual bool emitFPOEndProc(SMLoc L = {}) { return false; };
  22. virtual bool emitFPOData(const MCSymbol *ProcSym, SMLoc L = {}) {
  23. return false;
  24. }
  25. virtual bool emitFPOPushReg(unsigned Reg, SMLoc L = {}) { return false; }
  26. virtual bool emitFPOStackAlloc(unsigned StackAlloc, SMLoc L = {}) {
  27. return false;
  28. }
  29. virtual bool emitFPOStackAlign(unsigned Align, SMLoc L = {}) { return false; }
  30. virtual bool emitFPOSetFrame(unsigned Reg, SMLoc L = {}) { return false; }
  31. };
  32. /// Implements X86-only null emission.
  33. inline MCTargetStreamer *createX86NullTargetStreamer(MCStreamer &S) {
  34. return new X86TargetStreamer(S);
  35. }
  36. } // end namespace llvm
  37. #endif