LLVM
8.0.1
|
#include "Hexagon.h"
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCShuffler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInst.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "hexagon-mccompound" |
Enumerations | |
enum | OpcodeIndex { fp0_jump_nt = 0, fp0_jump_t, fp1_jump_nt, fp1_jump_t, tp0_jump_nt, tp0_jump_t, tp1_jump_nt, tp1_jump_t } |
Functions | |
static unsigned | getCompoundCandidateGroup (MCInst const &MI, bool IsExtended) |
static unsigned | getCompoundOp (MCInst const &HMCI) |
getCompoundOp - Return the index from 0-7 into the above opcode lists. More... | |
static MCInst * | getCompoundInsn (MCContext &Context, MCInst const &L, MCInst const &R) |
static bool | isOrderedCompoundPair (MCInst const &MIa, bool IsExtendedA, MCInst const &MIb, bool IsExtendedB) |
Non-Symmetrical. See if these two instructions are fit for compound pair. More... | |
static bool | lookForCompound (MCInstrInfo const &MCII, MCContext &Context, MCInst &MCI) |
Variables | |
static const unsigned | tstBitOpcode [8] |
static const unsigned | cmpeqBitOpcode [8] |
static const unsigned | cmpgtBitOpcode [8] |
static const unsigned | cmpgtuBitOpcode [8] |
static const unsigned | cmpeqiBitOpcode [8] |
static const unsigned | cmpgtiBitOpcode [8] |
static const unsigned | cmpgtuiBitOpcode [8] |
static const unsigned | cmpeqn1BitOpcode [8] |
static const unsigned | cmpgtn1BitOpcode [8] |
#define DEBUG_TYPE "hexagon-mccompound" |
Definition at line 29 of file HexagonMCCompound.cpp.
enum OpcodeIndex |
Enumerator | |
---|---|
fp0_jump_nt | |
fp0_jump_t | |
fp1_jump_nt | |
fp1_jump_t | |
tp0_jump_nt | |
tp0_jump_t | |
tp1_jump_nt | |
tp1_jump_t |
Definition at line 31 of file HexagonMCCompound.cpp.
Definition at line 81 of file HexagonMCCompound.cpp.
References llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonII::HCG_A, llvm::HexagonII::HCG_B, llvm::HexagonII::HCG_C, llvm::HexagonII::HCG_None, llvm::HexagonMCInstrInfo::isIntRegForSubInst(), and llvm::HexagonMCInstrInfo::minConstant().
Referenced by isOrderedCompoundPair().
Definition at line 198 of file HexagonMCCompound.cpp.
References llvm::MCInst::addOperand(), assert(), Context, llvm::dbgs(), getCompoundOp(), llvm::MCOperand::getExpr(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), LLVM_DEBUG, llvm::MCInst::setOpcode(), and Success.
Referenced by lookForCompound().
getCompoundOp - Return the index from 0-7 into the above opcode lists.
Definition at line 176 of file HexagonMCCompound.cpp.
References assert(), fp0_jump_nt, fp0_jump_t, fp1_jump_nt, fp1_jump_t, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm_unreachable, tp0_jump_nt, tp0_jump_t, tp1_jump_nt, and tp1_jump_t.
Referenced by getCompoundInsn().
|
static |
Non-Symmetrical. See if these two instructions are fit for compound pair.
Definition at line 336 of file HexagonMCCompound.cpp.
References getCompoundCandidateGroup(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonII::HCG_A, llvm::HexagonII::HCG_B, and llvm::HexagonII::HCG_C.
Referenced by lookForCompound().
|
static |
Definition at line 350 of file HexagonMCCompound.cpp.
References assert(), B, llvm::MCInst::begin(), llvm::HexagonMCInstrInfo::bundleInstructionsOffset, llvm::dbgs(), llvm::MCInst::end(), llvm::MCInst::erase(), getCompoundInsn(), llvm::MCInst::getOpcode(), llvm::HexagonMCInstrInfo::getType(), llvm::HexagonMCInstrInfo::isBundle(), llvm::HexagonMCInstrInfo::isImmext(), isOrderedCompoundPair(), LLVM_DEBUG, and llvm::HexagonII::TypeJ.
Referenced by llvm::HexagonMCInstrInfo::tryCompound().
Definition at line 46 of file HexagonMCCompound.cpp.
Definition at line 58 of file HexagonMCCompound.cpp.
Definition at line 70 of file HexagonMCCompound.cpp.
Definition at line 50 of file HexagonMCCompound.cpp.
Definition at line 62 of file HexagonMCCompound.cpp.
Definition at line 74 of file HexagonMCCompound.cpp.
Definition at line 54 of file HexagonMCCompound.cpp.
Definition at line 66 of file HexagonMCCompound.cpp.
Definition at line 42 of file HexagonMCCompound.cpp.