LLVM  16.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 
14 namespace llvm {
15 
16 /// X86 target streamer implementing x86-only assembly directives.
18 public:
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.
40  return new X86TargetStreamer(S);
41 }
42 
43 } // end namespace llvm
44 
45 #endif
llvm::X86TargetStreamer::emitFPOStackAlloc
virtual bool emitFPOStackAlloc(unsigned StackAlloc, SMLoc L={})
Definition: X86TargetStreamer.h:31
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
llvm::X86TargetStreamer::emitFPOEndPrologue
virtual bool emitFPOEndPrologue(SMLoc L={})
Definition: X86TargetStreamer.h:25
llvm::X86TargetStreamer::emitFPOStackAlign
virtual bool emitFPOStackAlign(unsigned Align, SMLoc L={})
Definition: X86TargetStreamer.h:34
llvm::X86Disassembler::Reg
Reg
All possible values of the reg field in the ModR/M byte.
Definition: X86DisassemblerDecoder.h:462
llvm::MCStreamer
Streaming machine code generation interface.
Definition: MCStreamer.h:212
llvm::SMLoc
Represents a location in source code.
Definition: SMLoc.h:23
llvm::X86TargetStreamer::emitFPOPushReg
virtual bool emitFPOPushReg(unsigned Reg, SMLoc L={})
Definition: X86TargetStreamer.h:30
llvm::X86TargetStreamer::emitFPOSetFrame
virtual bool emitFPOSetFrame(unsigned Reg, SMLoc L={})
Definition: X86TargetStreamer.h:35
llvm::MCTargetStreamer
Target specific streamer interface.
Definition: MCStreamer.h:93
llvm::Align
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition: Alignment.h:39
llvm::X86TargetStreamer::emitFPOProc
virtual bool emitFPOProc(const MCSymbol *ProcSym, unsigned ParamsSize, SMLoc L={})
Definition: X86TargetStreamer.h:21
llvm::X86TargetStreamer::emitFPOData
virtual bool emitFPOData(const MCSymbol *ProcSym, SMLoc L={})
Definition: X86TargetStreamer.h:27
llvm::X86TargetStreamer::emitFPOEndProc
virtual bool emitFPOEndProc(SMLoc L={})
Definition: X86TargetStreamer.h:26
llvm::createX86NullTargetStreamer
MCTargetStreamer * createX86NullTargetStreamer(MCStreamer &S)
Implements X86-only null emission.
Definition: X86TargetStreamer.h:39
S
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Definition: README.txt:210
llvm::X86TargetStreamer::X86TargetStreamer
X86TargetStreamer(MCStreamer &S)
Definition: X86TargetStreamer.h:19
llvm::X86TargetStreamer
X86 target streamer implementing x86-only assembly directives.
Definition: X86TargetStreamer.h:17
MCStreamer.h