LLVM 20.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 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(MCRegister 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(MCRegister Reg, SMLoc L = {}) { return false; }
36};
37
38/// Implements X86-only null emission.
40 return new X86TargetStreamer(S);
41}
42
43} // end namespace llvm
44
45#endif
unsigned Reg
Wrapper class representing physical registers. Should be passed by value.
Definition: MCRegister.h:33
Streaming machine code generation interface.
Definition: MCStreamer.h:213
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
Target specific streamer interface.
Definition: MCStreamer.h:94
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