LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
X86MCInstLower.cpp File Reference
#include "X86AsmPrinter.h"
#include "InstPrinter/X86ATTInstPrinter.h"
#include "X86COFFMachineModuleInfo.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/CodeGen/MachineModuleInfoImpls.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/IR/Type.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstBuilder.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Target/Mangler.h"
Include dependency graph for X86MCInstLower.cpp:

Go to the source code of this file.

Functions

static void LowerUnaryToTwoAddr (MCInst &OutMI, unsigned NewOpc)
 LowerUnaryToTwoAddr - R = setb -> R = sbb R, R. More...
 
static void SimplifyShortImmForm (MCInst &Inst, unsigned Opcode)
 Simplify FOO $imm, %{al,ax,eax,rax} to FOO $imm, for instruction with a short fixed-register form. More...
 
static void SimplifyMOVSX (MCInst &Inst)
 If a movsx instruction has a shorter encoding for the used register simplify the instruction to use it instead. More...
 
static void SimplifyShortMoveForm (X86AsmPrinter &Printer, MCInst &Inst, unsigned Opcode)
 Simplify things like MOV32rm to MOV32o32a. More...
 
static void LowerTlsAddr (MCStreamer &OutStreamer, X86MCInstLower &MCInstLowering, const MachineInstr &MI)
 
static std::pair
< StackMaps::Location,
MachineInstr::const_mop_iterator
parseMemoryOperand (StackMaps::Location::LocationType LocTy, unsigned Size, MachineInstr::const_mop_iterator MOI, MachineInstr::const_mop_iterator MOE)
 
static void LowerSTACKMAP (MCStreamer &OutStreamer, StackMaps &SM, const MachineInstr &MI)
 
static void LowerPATCHPOINT (MCStreamer &OutStreamer, StackMaps &SM, const MachineInstr &MI)
 

Function Documentation

static void LowerPATCHPOINT ( MCStreamer OutStreamer,
StackMaps SM,
const MachineInstr MI 
)
static
static void LowerSTACKMAP ( MCStreamer OutStreamer,
StackMaps SM,
const MachineInstr MI 
)
static
static void LowerTlsAddr ( MCStreamer OutStreamer,
X86MCInstLower &  MCInstLowering,
const MachineInstr MI 
)
static
static void LowerUnaryToTwoAddr ( MCInst OutMI,
unsigned  NewOpc 
)
static

LowerUnaryToTwoAddr - R = setb -> R = sbb R, R.

Definition at line 231 of file X86MCInstLower.cpp.

References llvm::MCInst::addOperand(), llvm::MCInst::getOperand(), and llvm::MCInst::setOpcode().

static void SimplifyMOVSX ( MCInst Inst)
static

If a movsx instruction has a shorter encoding for the used register simplify the instruction to use it instead.

Definition at line 261 of file X86MCInstLower.cpp.

References llvm::A64CC::AL, llvm::N86::EAX, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm_unreachable, and llvm::MCInst::setOpcode().

static void SimplifyShortImmForm ( MCInst Inst,
unsigned  Opcode 
)
static
static void SimplifyShortMoveForm ( X86AsmPrinter Printer,
MCInst Inst,
unsigned  Opcode 
)
static