LLVM API Documentation
#include <MipsSEInstrInfo.h>


Definition at line 22 of file MipsSEInstrInfo.h.
| MipsSEInstrInfo::MipsSEInstrInfo | ( | MipsTargetMachine & | TM | ) | [explicit] |
Definition at line 32 of file MipsSEInstrInfo.cpp.
| void MipsSEInstrInfo::adjustStackPtr | ( | unsigned | SP, |
| int64_t | Amount, | ||
| MachineBasicBlock & | MBB, | ||
| MachineBasicBlock::iterator | I | ||
| ) | const |
Adjust SP by Amount bytes.
Definition at line 316 of file MipsSEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::TargetMachine::getSubtarget(), llvm::MipsSubtarget::isABI_N64(), llvm::isInt< 16 >(), llvm::RegState::Kill, loadImmediate(), and llvm::MipsInstrInfo::TM.
Referenced by llvm::MipsSEFrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::emitEpilogue(), and llvm::MipsSEFrameLowering::emitPrologue().
| void MipsSEInstrInfo::copyPhysReg | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | MI, | ||
| DebugLoc | DL, | ||
| unsigned | DestReg, | ||
| unsigned | SrcReg, | ||
| bool | KillSrc | ||
| ) | const [virtual] |
Definition at line 91 of file MipsSEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::RegState::Define, llvm::getKillRegState(), llvm::RegState::Implicit, llvm::RegState::ImplicitDefine, and OR.
| bool MipsSEInstrInfo::expandPostRAPseudo | ( | MachineBasicBlock::iterator | MI | ) | const [virtual] |
Definition at line 247 of file MipsSEInstrInfo.cpp.
References llvm::MipsISD::BuildPairF64, llvm::MachineBasicBlock::erase(), llvm::MipsISD::ExtractElementF64, and llvm::MachineBasicBlock::getParent().
getOppositeBranchOpc - Return the inverse of the specified opcode, e.g. turning BEQ to BNE.
Implements llvm::MipsInstrInfo.
Definition at line 295 of file MipsSEInstrInfo.cpp.
References llvm_unreachable.
| const MipsRegisterInfo & MipsSEInstrInfo::getRegisterInfo | ( | ) | const [virtual] |
getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As such, whenever a client has an instance of instruction info, it should always be able to get register info as well (through this method).
Implements llvm::MipsInstrInfo.
Definition at line 38 of file MipsSEInstrInfo.cpp.
| unsigned MipsSEInstrInfo::isLoadFromStackSlot | ( | const MachineInstr * | MI, |
| int & | FrameIndex | ||
| ) | const [virtual] |
isLoadFromStackSlot - If the specified machine instruction is a direct load from a stack slot, return the virtual or physical register number of the destination along with the FrameIndex of the loaded stack slot. If not, return 0. This predicate must return 0 if the instruction has any side effects other than loading from the stack slot.
Definition at line 48 of file MipsSEInstrInfo.cpp.
References llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isImm(), llvm::MipsInstrInfo::isZeroImm(), and llvm::A64DB::LD.
| unsigned MipsSEInstrInfo::isStoreToStackSlot | ( | const MachineInstr * | MI, |
| int & | FrameIndex | ||
| ) | const [virtual] |
isStoreToStackSlot - If the specified machine instruction is a direct store to a stack slot, return the virtual or physical register number of the source reg along with the FrameIndex of the loaded stack slot. If not, return 0. This predicate must return 0 if the instruction has any side effects other than storing to the stack slot.
Definition at line 73 of file MipsSEInstrInfo.cpp.
References llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isImm(), and llvm::MipsInstrInfo::isZeroImm().
| unsigned MipsSEInstrInfo::loadImmediate | ( | int64_t | Imm, |
| MachineBasicBlock & | MBB, | ||
| MachineBasicBlock::iterator | II, | ||
| DebugLoc | DL, | ||
| unsigned * | NewImm | ||
| ) | const |
Emit a series of instructions to load an immediate. If NewImm is a non-NULL parameter, the last instruction is not emitted, but instead its immediate operand is returned in NewImm.
This function generates the sequence of instructions needed to get the result of adding register REG and immediate IMM.
Definition at line 335 of file MipsSEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MipsAnalyzeImmediate::Analyze(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::BuildMI(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::TargetMachine::getSubtarget(), llvm::MipsSubtarget::isABI_N64(), llvm::RegState::Kill, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::MipsInstrInfo::TM.
Referenced by adjustStackPtr().
| void MipsSEInstrInfo::loadRegFromStack | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | MI, | ||
| unsigned | DestReg, | ||
| int | FrameIndex, | ||
| const TargetRegisterClass * | RC, | ||
| const TargetRegisterInfo * | TRI, | ||
| int64_t | Offset | ||
| ) | const [virtual] |
Implements llvm::MipsInstrInfo.
Definition at line 215 of file MipsSEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::MipsInstrInfo::GetMemOperand(), llvm::A64DB::LD, and llvm::MachineMemOperand::MOLoad.
| void MipsSEInstrInfo::storeRegToStack | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | MI, | ||
| unsigned | SrcReg, | ||
| bool | isKill, | ||
| int | FrameIndex, | ||
| const TargetRegisterClass * | RC, | ||
| const TargetRegisterInfo * | TRI, | ||
| int64_t | Offset | ||
| ) | const [virtual] |
Implements llvm::MipsInstrInfo.
Definition at line 180 of file MipsSEInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::getKillRegState(), llvm::MipsInstrInfo::GetMemOperand(), and llvm::MachineMemOperand::MOStore.