LLVM
8.0.1
|
#include "Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h"
Public Member Functions | |
HexagonMCCodeEmitter (MCInstrInfo const &MII, MCContext &MCT) | |
void | encodeInstruction (MCInst const &MI, raw_ostream &OS, SmallVectorImpl< MCFixup > &Fixups, MCSubtargetInfo const &STI) const override |
Emit the bundle. More... | |
void | EncodeSingleInstruction (const MCInst &MI, raw_ostream &OS, SmallVectorImpl< MCFixup > &Fixups, const MCSubtargetInfo &STI, uint32_t Parse) const |
EncodeSingleInstruction - Emit a single. More... | |
uint64_t | getBinaryCodeForInstr (MCInst const &MI, SmallVectorImpl< MCFixup > &Fixups, MCSubtargetInfo const &STI) const |
unsigned | getMachineOpValue (MCInst const &MI, MCOperand const &MO, SmallVectorImpl< MCFixup > &Fixups, MCSubtargetInfo const &STI) const |
Return binary encoding of operand. More... | |
Public Member Functions inherited from llvm::MCCodeEmitter | |
MCCodeEmitter (const MCCodeEmitter &)=delete | |
MCCodeEmitter & | operator= (const MCCodeEmitter &)=delete |
virtual | ~MCCodeEmitter () |
virtual void | reset () |
Lifetime management. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCCodeEmitter | |
MCCodeEmitter () | |
Definition at line 35 of file HexagonMCCodeEmitter.h.
|
inline |
Definition at line 50 of file HexagonMCCodeEmitter.h.
References encodeInstruction(), EncodeSingleInstruction(), getBinaryCodeForInstr(), getMachineOpValue(), Kind, and MI.
|
overridevirtual |
Emit the bundle.
Implements llvm::MCCodeEmitter.
Definition at line 369 of file HexagonMCCodeEmitter.cpp.
References assert(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::HexagonMCInstrInfo::bundleSize(), llvm::dbgs(), Features, llvm::MCSubtargetInfo::getFeatureBits(), HEXAGON_INSTR_SIZE, I, llvm::HexagonMCInstrInfo::isBundle(), llvm::HexagonMCInstrInfo::isImmext(), LLVM_DEBUG, and MI.
Referenced by HexagonMCCodeEmitter().
void HexagonMCCodeEmitter::EncodeSingleInstruction | ( | const MCInst & | MI, |
raw_ostream & | OS, | ||
SmallVectorImpl< MCFixup > & | Fixups, | ||
const MCSubtargetInfo & | STI, | ||
uint32_t | Parse | ||
) | const |
EncodeSingleInstruction - Emit a single.
Definition at line 408 of file HexagonMCCodeEmitter.cpp.
References assert(), llvm::dbgs(), llvm::HexagonMCInstrInfo::getDesc(), llvm::MCOperand::getInst(), llvm::HexagonMCInstrInfo::getName(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::HexagonII::INST_PARSE_DUPLEX, llvm::HexagonMCInstrInfo::isBundle(), llvm::support::little, LLVM_ATTRIBUTE_NORETURN, LLVM_DEBUG, and llvm_unreachable.
Referenced by HexagonMCCodeEmitter().
uint64_t llvm::HexagonMCCodeEmitter::getBinaryCodeForInstr | ( | MCInst const & | MI, |
SmallVectorImpl< MCFixup > & | Fixups, | ||
MCSubtargetInfo const & | STI | ||
) | const |
Referenced by HexagonMCCodeEmitter().
unsigned HexagonMCCodeEmitter::getMachineOpValue | ( | MCInst const & | MI, |
MCOperand const & | MO, | ||
SmallVectorImpl< MCFixup > & | Fixups, | ||
MCSubtargetInfo const & | STI | ||
) | const |
Return binary encoding of operand.
Definition at line 721 of file HexagonMCCodeEmitter.cpp.
References assert(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::HexagonMCInstrInfo::getDuplexRegisterNumbering(), llvm::MCOperand::getExpr(), llvm::MCOperand::getInst(), llvm::HexagonMCInstrInfo::getNewValueOperand(), llvm::HexagonMCInstrInfo::getNewValueOperand2(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonMCInstrInfo::getType(), llvm::HexagonMCInstrInfo::hasNewValue(), llvm::HexagonMCInstrInfo::hasNewValue2(), I, llvm::MCOperand::isImm(), llvm::HexagonMCInstrInfo::isImmext(), llvm::HexagonMCInstrInfo::isNewValue(), llvm::HexagonMCInstrInfo::isPredicated(), llvm::HexagonMCInstrInfo::isPredicatedTrue(), llvm::MCOperand::isReg(), llvm::HexagonMCInstrInfo::isSubInstruction(), llvm::HexagonMCInstrInfo::isVector(), Reg, RegisterMatches(), llvm::HexagonMCInstrInfo::SubregisterBit(), llvm::HexagonII::TypeCJ, and UseReg().
Referenced by HexagonMCCodeEmitter().