LLVM: lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp File Reference (original) (raw)
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] |
◆ DEBUG_TYPE
#define DEBUG_TYPE "hexagon-mccompound"
◆ 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.
◆ getCompoundCandidateGroup()
◆ getCompoundInsn()
Definition at line 197 of file HexagonMCCompound.cpp.
References llvm::MCInst::addOperand(), assert(), cmpeqBitOpcode, cmpeqiBitOpcode, cmpeqn1BitOpcode, cmpgtBitOpcode, cmpgtiBitOpcode, cmpgtn1BitOpcode, cmpgtuBitOpcode, cmpgtuiBitOpcode, llvm::dbgs(), getCompoundOp(), LLVM_DEBUG, llvm::MCInst::setOpcode(), Success, and tstBitOpcode.
Referenced by lookForCompound().
◆ getCompoundOp()
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().
◆ isOrderedCompoundPair()
◆ lookForCompound()
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().
◆ cmpeqBitOpcode
Initial value:
= {
J4_cmpeq_fp0_jump_nt, J4_cmpeq_fp0_jump_t, J4_cmpeq_fp1_jump_nt,
J4_cmpeq_fp1_jump_t, J4_cmpeq_tp0_jump_nt, J4_cmpeq_tp0_jump_t,
J4_cmpeq_tp1_jump_nt, J4_cmpeq_tp1_jump_t}
Definition at line 45 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpeqiBitOpcode
Initial value:
= {
J4_cmpeqi_fp0_jump_nt, J4_cmpeqi_fp0_jump_t, J4_cmpeqi_fp1_jump_nt,
J4_cmpeqi_fp1_jump_t, J4_cmpeqi_tp0_jump_nt, J4_cmpeqi_tp0_jump_t,
J4_cmpeqi_tp1_jump_nt, J4_cmpeqi_tp1_jump_t}
Definition at line 57 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpeqn1BitOpcode
Initial value:
= {
J4_cmpeqn1_fp0_jump_nt, J4_cmpeqn1_fp0_jump_t, J4_cmpeqn1_fp1_jump_nt,
J4_cmpeqn1_fp1_jump_t, J4_cmpeqn1_tp0_jump_nt, J4_cmpeqn1_tp0_jump_t,
J4_cmpeqn1_tp1_jump_nt, J4_cmpeqn1_tp1_jump_t}
Definition at line 69 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpgtBitOpcode
Initial value:
= {
J4_cmpgt_fp0_jump_nt, J4_cmpgt_fp0_jump_t, J4_cmpgt_fp1_jump_nt,
J4_cmpgt_fp1_jump_t, J4_cmpgt_tp0_jump_nt, J4_cmpgt_tp0_jump_t,
J4_cmpgt_tp1_jump_nt, J4_cmpgt_tp1_jump_t}
Definition at line 49 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpgtiBitOpcode
Initial value:
= {
J4_cmpgti_fp0_jump_nt, J4_cmpgti_fp0_jump_t, J4_cmpgti_fp1_jump_nt,
J4_cmpgti_fp1_jump_t, J4_cmpgti_tp0_jump_nt, J4_cmpgti_tp0_jump_t,
J4_cmpgti_tp1_jump_nt, J4_cmpgti_tp1_jump_t}
Definition at line 61 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpgtn1BitOpcode
Initial value:
= {
J4_cmpgtn1_fp0_jump_nt, J4_cmpgtn1_fp0_jump_t, J4_cmpgtn1_fp1_jump_nt,
J4_cmpgtn1_fp1_jump_t, J4_cmpgtn1_tp0_jump_nt, J4_cmpgtn1_tp0_jump_t,
J4_cmpgtn1_tp1_jump_nt, J4_cmpgtn1_tp1_jump_t,
}
Definition at line 73 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpgtuBitOpcode
Initial value:
= {
J4_cmpgtu_fp0_jump_nt, J4_cmpgtu_fp0_jump_t, J4_cmpgtu_fp1_jump_nt,
J4_cmpgtu_fp1_jump_t, J4_cmpgtu_tp0_jump_nt, J4_cmpgtu_tp0_jump_t,
J4_cmpgtu_tp1_jump_nt, J4_cmpgtu_tp1_jump_t}
Definition at line 53 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ cmpgtuiBitOpcode
Initial value:
= {
J4_cmpgtui_fp0_jump_nt, J4_cmpgtui_fp0_jump_t, J4_cmpgtui_fp1_jump_nt,
J4_cmpgtui_fp1_jump_t, J4_cmpgtui_tp0_jump_nt, J4_cmpgtui_tp0_jump_t,
J4_cmpgtui_tp1_jump_nt, J4_cmpgtui_tp1_jump_t}
Definition at line 65 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
◆ tstBitOpcode
Initial value:
= {
J4_tstbit0_fp0_jump_nt, J4_tstbit0_fp0_jump_t, J4_tstbit0_fp1_jump_nt,
J4_tstbit0_fp1_jump_t, J4_tstbit0_tp0_jump_nt, J4_tstbit0_tp0_jump_t,
J4_tstbit0_tp1_jump_nt, J4_tstbit0_tp1_jump_t}
Definition at line 41 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().