LLVM 22.0.0git
X86TargetStreamer.h
Go to the documentation of this file.
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
14namespace llvm {
15
16/// X86 target streamer implementing x86-only assembly directives.
18public:
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.
44 return new X86TargetStreamer(S);
45}
46
47} // end namespace llvm
48
49#endif
Register Reg
Wrapper class representing physical registers. Should be passed by value.
Definition: MCRegister.h:33
Streaming machine code generation interface.
Definition: MCStreamer.h:220
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:42
Target specific streamer interface.
Definition: MCStreamer.h:93
Represents a location in source code.
Definition: SMLoc.h:23
X86 target streamer implementing x86-only assembly directives.
virtual bool emitFPOPushReg(MCRegister Reg, SMLoc L={})
virtual bool emitFPOProc(const MCSymbol *ProcSym, unsigned ParamsSize, SMLoc L={})
virtual bool emitFPOEndPrologue(SMLoc L={})
virtual bool emitFPOData(const MCSymbol *ProcSym, SMLoc L={})
virtual bool emitFPOEndProc(SMLoc L={})
X86TargetStreamer(MCStreamer &S)
virtual bool emitFPOStackAlign(unsigned Align, SMLoc L={})
virtual bool emitFPOSetFrame(MCRegister Reg, SMLoc L={})
virtual bool emitFPOStackAlloc(unsigned StackAlloc, SMLoc L={})
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
MCTargetStreamer * createX86NullTargetStreamer(MCStreamer &S)
Implements X86-only null emission.
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition: Alignment.h:39