LLVM API Documentation

Namespaces | Functions
X86MCInstLower.cpp File Reference
#include "X86AsmPrinter.h"
#include "X86RegisterInfo.h"
#include "InstPrinter/X86ATTInstPrinter.h"
#include "MCTargetDesc/X86BaseInfo.h"
#include "Utils/X86ShuffleDecode.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineModuleInfoImpls.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/Mangler.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCCodeEmitter.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/TargetRegistry.h"
Include dependency graph for X86MCInstLower.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


Functions

static void EmitNops (MCStreamer &OS, unsigned NumBytes, bool Is64Bit, const MCSubtargetInfo &STI)
 Emit the optimal amount of multi-byte nops on X86.
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.
static void SimplifyMOVSX (MCInst &Inst)
 If a movsx instruction has a shorter encoding for the used register simplify the instruction to use it instead.
static void SimplifyShortMoveForm (X86AsmPrinter &Printer, MCInst &Inst, unsigned Opcode)
 Simplify things like MOV32rm to MOV32o32a.
static unsigned getRetOpcode (const X86Subtarget &Subtarget)
static
MachineBasicBlock::const_iterator 
PrevCrossBBInst (MachineBasicBlock::const_iterator MBBI)

Function Documentation

static void EmitNops ( MCStreamer OS,
unsigned  NumBytes,
bool  Is64Bit,
const MCSubtargetInfo STI 
) [static]

Emit the optimal amount of multi-byte nops on X86.

Definition at line 760 of file X86MCInstLower.cpp.

References llvm::MCStreamer::EmitBytes(), llvm::MCStreamer::EmitInstruction(), and llvm_unreachable.

static unsigned getRetOpcode ( const X86Subtarget &  Subtarget) [static]

Definition at line 392 of file X86MCInstLower.cpp.

Referenced by llvm::X86AsmPrinter::EmitInstruction().

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 314 of file X86MCInstLower.cpp.

References llvm::AArch64CC::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]