LLVM API Documentation
#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"
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) |
|
static |
Definition at line 780 of file X86MCInstLower.cpp.
References llvm::MCStreamer::EmitInstruction(), llvm::MachineOperand::getImm(), llvm::PatchPointOpers::getMetaOper(), llvm::PatchPointOpers::getNextScratchIdx(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::PatchPointOpers::NBytesPos, llvm::StackMaps::recordPatchPoint(), and llvm::PatchPointOpers::TargetPos.
Referenced by llvm::X86AsmPrinter::EmitInstruction().
|
static |
Definition at line 764 of file X86MCInstLower.cpp.
References llvm::MCStreamer::EmitInstruction(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and llvm::StackMaps::recordStackMap().
Referenced by llvm::X86AsmPrinter::EmitInstruction().
|
static |
Definition at line 599 of file X86MCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::N86::EAX, llvm::N86::EBX, llvm::MCStreamer::EmitInstruction(), llvm::MCStreamer::getContext(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MCContext::GetOrCreateSymbol(), llvm_unreachable, and llvm::MCInst::setOpcode().
Referenced by llvm::X86AsmPrinter::EmitInstruction().
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 |
Definition at line 679 of file X86MCInstLower.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isImm(), and llvm::MachineOperand::isReg().
|
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().
Simplify FOO $imm, %{al,ax,eax,rax} to FOO $imm, for instruction with a short fixed-register form.
Definition at line 239 of file X86MCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::A64CC::AL, llvm::N86::EAX, llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), and llvm::MCInst::setOpcode().
|
static |
Simplify things like MOV32rm to MOV32o32a.
Definition at line 288 of file X86MCInstLower.cpp.
References llvm::HexagonII::Absolute, llvm::MCInst::addOperand(), llvm::A64CC::AL, llvm::N86::EAX, llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::X86AsmPrinter::getSubtarget(), llvm::X86Subtarget::is64Bit(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), and llvm::MCInst::setOpcode().