LLVM 20.0.0git
|
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCShuffler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.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. | |
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. | |
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 28 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 30 of file HexagonMCCompound.cpp.
Definition at line 80 of file HexagonMCCompound.cpp.
References llvm::HexagonII::HCG_A, llvm::HexagonII::HCG_B, llvm::HexagonII::HCG_C, llvm::HexagonII::HCG_None, llvm::HexagonMCInstrInfo::isIntRegForSubInst(), MI, and llvm::HexagonMCInstrInfo::minConstant().
Referenced by isOrderedCompoundPair().
Definition at line 197 of file HexagonMCCompound.cpp.
References llvm::MCInst::addOperand(), assert(), cmpeqBitOpcode, cmpeqiBitOpcode, cmpeqn1BitOpcode, cmpgtBitOpcode, cmpgtiBitOpcode, cmpgtn1BitOpcode, cmpgtuBitOpcode, cmpgtuiBitOpcode, llvm::MCContext::createMCInst(), llvm::dbgs(), getCompoundOp(), LLVM_DEBUG, llvm::MCInst::setOpcode(), Success, and tstBitOpcode.
Referenced by lookForCompound().
getCompoundOp - Return the index from 0-7 into the above opcode lists.
Definition at line 175 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_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 335 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 349 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 45 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 57 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 69 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 49 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 61 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 73 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 53 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 65 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
Definition at line 41 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().