LLVM 22.0.0git
X86MCTargetDesc.cpp File Reference
#include "X86MCTargetDesc.h"
#include "TargetInfo/X86TargetInfo.h"
#include "X86ATTInstPrinter.h"
#include "X86BaseInfo.h"
#include "X86IntelInstPrinter.h"
#include "X86MCAsmInfo.h"
#include "X86TargetStreamer.h"
#include "llvm-c/Visibility.h"
#include "llvm/ADT/APInt.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/MC/MCInstrAnalysis.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/TargetParser/Host.h"
#include "llvm/TargetParser/Triple.h"
#include "X86GenRegisterInfo.inc"
#include "X86GenInstrInfo.inc"
#include "X86GenSubtargetInfo.inc"

Go to the source code of this file.

Classes

class  llvm::X86_MC::X86MCInstrAnalysis

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::X86_MC

Macros

#define GET_REGINFO_MC_DESC
#define GET_INSTRINFO_MC_DESC
#define GET_INSTRINFO_MC_HELPERS
#define ENABLE_INSTR_PREDICATE_VERIFIER
#define GET_SUBTARGETINFO_MC_DESC
#define GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
#define GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
#define DEFAULT_NOREG
#define SUB_SUPER(R1, R2, R3, R4, R)
#define A_SUB_SUPER(R)
#define D_SUB_SUPER(R)
#define C_SUB_SUPER(R)
#define B_SUB_SUPER(R)
#define SI_SUB_SUPER(R)
#define DI_SUB_SUPER(R)
#define BP_SUB_SUPER(R)
#define SP_SUB_SUPER(R)
#define NO_SUB_SUPER(NO, REG)
#define NO_SUB_SUPER_B(NO)
#define NO_SUB_SUPER_W(NO)
#define NO_SUB_SUPER_D(NO)
#define NO_SUB_SUPER_Q(NO)

Functions

static bool isMemOperand (const MCInst &MI, unsigned Op, unsigned RegClassID)
static MCInstrInfocreateX86MCInstrInfo ()
static MCRegisterInfocreateX86MCRegisterInfo (const Triple &TT)
static MCAsmInfocreateX86MCAsmInfo (const MCRegisterInfo &MRI, const Triple &TheTriple, const MCTargetOptions &Options)
static MCInstPrintercreateX86MCInstPrinter (const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
static MCRelocationInfocreateX86MCRelocationInfo (const Triple &TheTriple, MCContext &Ctx)
static std::vector< std::pair< uint64_t, uint64_t > > llvm::X86_MC::findX86PltEntries (uint64_t PltSectionVA, ArrayRef< uint8_t > PltContents)
static std::vector< std::pair< uint64_t, uint64_t > > llvm::X86_MC::findX86_64PltEntries (uint64_t PltSectionVA, ArrayRef< uint8_t > PltContents)
static MCInstrAnalysiscreateX86MCInstrAnalysis (const MCInstrInfo *Info)
LLVM_C_ABI void LLVMInitializeX86TargetMC ()

Macro Definition Documentation

◆ A_SUB_SUPER

#define A_SUB_SUPER ( R)
Value:
case X86::AH: \
SUB_SUPER(AL, AX, EAX, RAX, R)

Referenced by llvm::getX86SubSuperRegister().

◆ B_SUB_SUPER

#define B_SUB_SUPER ( R)
Value:
case X86::BH: \
SUB_SUPER(BL, BX, EBX, RBX, R)

Referenced by llvm::getX86SubSuperRegister().

◆ BP_SUB_SUPER

#define BP_SUB_SUPER ( R)
Value:
SUB_SUPER(BPL, BP, EBP, RBP, R)
#define SUB_SUPER(R1, R2, R3, R4, R)

Referenced by llvm::getX86SubSuperRegister().

◆ C_SUB_SUPER

#define C_SUB_SUPER ( R)
Value:
case X86::CH: \
SUB_SUPER(CL, CX, ECX, RCX, R)

Referenced by llvm::getX86SubSuperRegister().

◆ D_SUB_SUPER

#define D_SUB_SUPER ( R)
Value:
case X86::DH: \
SUB_SUPER(DL, DX, EDX, RDX, R)
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL

Referenced by llvm::getX86SubSuperRegister().

◆ DEFAULT_NOREG

#define DEFAULT_NOREG
Value:
default: \
return X86::NoRegister;

Referenced by llvm::getX86SubSuperRegister().

◆ DI_SUB_SUPER

#define DI_SUB_SUPER ( R)
Value:
SUB_SUPER(DIL, DI, EDI, RDI, R)
ReachingDefInfo & RDI

Referenced by llvm::getX86SubSuperRegister().

◆ ENABLE_INSTR_PREDICATE_VERIFIER

#define ENABLE_INSTR_PREDICATE_VERIFIER

Definition at line 41 of file X86MCTargetDesc.cpp.

◆ GET_INSTRINFO_MC_DESC

#define GET_INSTRINFO_MC_DESC

Definition at line 39 of file X86MCTargetDesc.cpp.

◆ GET_INSTRINFO_MC_HELPERS

#define GET_INSTRINFO_MC_HELPERS

Definition at line 40 of file X86MCTargetDesc.cpp.

◆ GET_REGINFO_MC_DESC

#define GET_REGINFO_MC_DESC

Definition at line 36 of file X86MCTargetDesc.cpp.

◆ GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS

#define GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS

Definition at line 499 of file X86MCTargetDesc.cpp.

◆ GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS

#define GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS

Definition at line 518 of file X86MCTargetDesc.cpp.

◆ GET_SUBTARGETINFO_MC_DESC

#define GET_SUBTARGETINFO_MC_DESC

Definition at line 44 of file X86MCTargetDesc.cpp.

◆ NO_SUB_SUPER

#define NO_SUB_SUPER ( NO,
REG )
Value:
SUB_SUPER(R##NO##B, R##NO##W, R##NO##D, R##NO, REG)
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")

◆ NO_SUB_SUPER_B

#define NO_SUB_SUPER_B ( NO)
Value:
NO_SUB_SUPER(NO, R##NO##B)
#define NO_SUB_SUPER(NO, REG)

Referenced by llvm::getX86SubSuperRegister().

◆ NO_SUB_SUPER_D

#define NO_SUB_SUPER_D ( NO)
Value:
NO_SUB_SUPER(NO, R##NO##D)

Referenced by llvm::getX86SubSuperRegister().

◆ NO_SUB_SUPER_Q

#define NO_SUB_SUPER_Q ( NO)
Value:
NO_SUB_SUPER(NO, R##NO)

Referenced by llvm::getX86SubSuperRegister().

◆ NO_SUB_SUPER_W

#define NO_SUB_SUPER_W ( NO)
Value:
NO_SUB_SUPER(NO, R##NO##W)

Referenced by llvm::getX86SubSuperRegister().

◆ SI_SUB_SUPER

#define SI_SUB_SUPER ( R)
Value:
SUB_SUPER(SIL, SI, ESI, RSI, R)

Referenced by llvm::getX86SubSuperRegister().

◆ SP_SUB_SUPER

#define SP_SUB_SUPER ( R)
Value:
SUB_SUPER(SPL, SP, ESP, RSP, R)

Referenced by llvm::getX86SubSuperRegister().

◆ SUB_SUPER

#define SUB_SUPER ( R1,
R2,
R3,
R4,
R )
Value:
case X86::R1: \
case X86::R2: \
case X86::R3: \
case X86::R4: \
return X86::R;

Function Documentation

◆ createX86MCAsmInfo()

◆ createX86MCInstPrinter()

MCInstPrinter * createX86MCInstPrinter ( const Triple & T,
unsigned SyntaxVariant,
const MCAsmInfo & MAI,
const MCInstrInfo & MII,
const MCRegisterInfo & MRI )
static

Definition at line 470 of file X86MCTargetDesc.cpp.

References MRI, and T.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86MCInstrAnalysis()

MCInstrAnalysis * createX86MCInstrAnalysis ( const MCInstrInfo * Info)
static

Definition at line 697 of file X86MCTargetDesc.cpp.

References Info.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86MCInstrInfo()

MCInstrInfo * createX86MCInstrInfo ( )
static

Definition at line 406 of file X86MCTargetDesc.cpp.

References X.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86MCRegisterInfo()

MCRegisterInfo * createX86MCRegisterInfo ( const Triple & TT)
static

◆ createX86MCRelocationInfo()

MCRelocationInfo * createX86MCRelocationInfo ( const Triple & TheTriple,
MCContext & Ctx )
static

Definition at line 482 of file X86MCTargetDesc.cpp.

References llvm::createMCRelocationInfo().

Referenced by LLVMInitializeX86TargetMC().

◆ isMemOperand()

◆ LLVMInitializeX86TargetMC()