LLVM
8.0.1
lib
Target
WebAssembly
WebAssemblyMCInstLower.h
Go to the documentation of this file.
1
//===-- WebAssemblyMCInstLower.h - Lower MachineInstr to MCInst -*- C++ -*-===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
///
10
/// \file
11
/// This file declares the class to lower WebAssembly MachineInstrs to
12
/// their corresponding MCInst records.
13
///
14
//===----------------------------------------------------------------------===//
15
16
#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYMCINSTLOWER_H
17
#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYMCINSTLOWER_H
18
19
#include "
llvm/MC/MCInst.h
"
20
#include "
llvm/Support/Compiler.h
"
21
22
namespace
llvm
{
23
class
WebAssemblyAsmPrinter;
24
class
MCContext;
25
class
MCSymbol
;
26
class
MachineInstr;
27
class
MachineOperand;
28
29
/// This class is used to lower an MachineInstr into an MCInst.
30
class
LLVM_LIBRARY_VISIBILITY
WebAssemblyMCInstLower
{
31
MCContext
&Ctx;
32
WebAssemblyAsmPrinter
&
Printer
;
33
34
MCSymbol
*GetGlobalAddressSymbol(
const
MachineOperand
&MO)
const
;
35
MCSymbol
*GetExternalSymbolSymbol(
const
MachineOperand
&MO)
const
;
36
MCOperand
LowerSymbolOperand
(
MCSymbol
*Sym, int64_t
Offset
,
bool
IsFunc,
37
bool
IsGlob,
bool
IsEvent)
const
;
38
39
public
:
40
WebAssemblyMCInstLower
(
MCContext
&ctx,
WebAssemblyAsmPrinter
&printer)
41
: Ctx(ctx), Printer(printer) {}
42
void
Lower(
const
MachineInstr
*
MI
,
MCInst
&OutMI)
const
;
43
};
44
}
// end namespace llvm
45
46
#endif
llvm::WebAssemblyMCInstLower
This class is used to lower an MachineInstr into an MCInst.
Definition:
WebAssemblyMCInstLower.h:30
llvm
This class represents lattice values for constants.
Definition:
AllocatorList.h:24
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition:
MCSymbol.h:42
llvm::WebAssemblyMCInstLower::WebAssemblyMCInstLower
WebAssemblyMCInstLower(MCContext &ctx, WebAssemblyAsmPrinter &printer)
Definition:
WebAssemblyMCInstLower.h:40
llvm::WebAssemblyAsmPrinter
Definition:
WebAssemblyAsmPrinter.h:24
Printer
print alias Alias Set Printer
Definition:
AliasSetTracker.cpp:740
llvm::ISD::MCSymbol
Definition:
ISDOpcodes.h:139
llvm::MCContext
Context object for machine code objects.
Definition:
MCContext.h:63
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition:
MCInst.h:161
MCInst.h
llvm::AMDGPU::Hwreg::Offset
Offset
Definition:
SIDefines.h:296
LowerSymbolOperand
static MCOperand LowerSymbolOperand(const MachineInstr *MI, const MachineOperand &MO, AsmPrinter &AP)
Definition:
SparcMCInstLower.cpp:30
llvm::MachineOperand
MachineOperand class - Representation of each machine instruction operand.
Definition:
MachineOperand.h:49
Compiler.h
llvm::MachineInstr
Representation of each machine instruction.
Definition:
MachineInstr.h:64
LLVM_LIBRARY_VISIBILITY
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
Definition:
Compiler.h:108
MI
IRTranslator LLVM IR MI
Definition:
IRTranslator.cpp:89
llvm::MCOperand
Instances of this class represent operands of the MCInst class.
Definition:
MCInst.h:35
Generated on Sun Dec 20 2020 13:58:11 for LLVM by
1.8.13