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 | |
9 | #ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86TARGETSTREAMER_H |
10 | #define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86TARGETSTREAMER_H |
11 | |
12 | #include "llvm/MC/MCStreamer.h" |
13 | |
14 | namespace llvm { |
15 | |
16 | /// X86 target streamer implementing x86-only assembly directives. |
17 | class X86TargetStreamer : public MCTargetStreamer { |
18 | public: |
19 | X86TargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {} |
20 | |
21 | virtual bool emitFPOProc(const MCSymbol *ProcSym, unsigned ParamsSize, |
22 | SMLoc L = {}) { |
23 | return false; |
24 | } |
25 | virtual bool emitFPOEndPrologue(SMLoc L = {}) { return false; } |
26 | virtual bool emitFPOEndProc(SMLoc L = {}) { return false; }; |
27 | virtual bool emitFPOData(const MCSymbol *ProcSym, SMLoc L = {}) { |
28 | return false; |
29 | } |
30 | virtual bool emitFPOPushReg(unsigned Reg, SMLoc L = {}) { return false; } |
31 | virtual bool emitFPOStackAlloc(unsigned StackAlloc, SMLoc L = {}) { |
32 | return false; |
33 | } |
34 | virtual bool emitFPOStackAlign(unsigned Align, SMLoc L = {}) { return false; } |
35 | virtual bool emitFPOSetFrame(unsigned Reg, SMLoc L = {}) { return false; } |
36 | }; |
37 | |
38 | /// Implements X86-only null emission. |
39 | inline MCTargetStreamer *createX86NullTargetStreamer(MCStreamer &S) { |
40 | return new X86TargetStreamer(S); |
41 | } |
42 | |
43 | } // end namespace llvm |
44 | |
45 | #endif |
46 | |