LLVM API Documentation
#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"
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) |
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 MachineBasicBlock::const_iterator PrevCrossBBInst | ( | MachineBasicBlock::const_iterator | MBBI | ) | [static] |
Definition at line 856 of file X86MCInstLower.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getParent(), and llvm::ilist_node< NodeTy >::getPrevNode().
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] |
Simplify FOO $imm, %{al,ax,eax,rax} to FOO $imm, for instruction with a short fixed-register form.
Definition at line 292 of file X86MCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::AArch64CC::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 void SimplifyShortMoveForm | ( | X86AsmPrinter & | Printer, |
MCInst & | Inst, | ||
unsigned | Opcode | ||
) | [static] |
Simplify things like MOV32rm to MOV32o32a.
Definition at line 341 of file X86MCInstLower.cpp.
References llvm::HexagonII::Absolute, llvm::MCInst::addOperand(), llvm::X86::AddrBaseReg, llvm::X86::AddrIndexReg, llvm::X86::AddrScaleAmt, llvm::X86::AddrSegmentReg, llvm::AArch64CC::AL, llvm::N86::EAX, llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::X86AsmPrinter::getSubtarget(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), and llvm::MCInst::setOpcode().