Home | History | Annotate | Download | only in Hexagon

Lines Matching defs:Opcode

279 /// First entry is always the opcode of the branching instruction, except when
281 /// BB with only unconditional jump. Subsequent entries depend upon the opcode,
289 /// Cond[0] = Hexagon::CMPEQri_f_Jumpnv_t_V4 -- specific opcode
1006 // inserting the reversed branching opcode.
1012 unsigned opcode = Cond[0].getImm();
1014 assert(get(opcode).isBranch() && "Should be a branching condition.");
1015 if (isEndLoopN(opcode))
1017 unsigned NewOpcode = getInvertedPredicatedOpcode(opcode);
1564 // Instruction with valid predicated-new opcode can be promoted to .new.
1798 bool HexagonInstrInfo::isEndLoopN(unsigned Opcode) const {
1799 return (Opcode == Hexagon::ENDLOOP0 ||
1800 Opcode == Hexagon::ENDLOOP1);
1858 unsigned Opcode = MI->getOpcode();
1859 const uint64_t F = get(Opcode).TSFlags;
2034 unsigned Opcode = MI->getOpcode();
2035 return Opcode == Hexagon::J2_loop0i ||
2036 Opcode == Hexagon::J2_loop0r ||
2037 Opcode == Hexagon::J2_loop0iext ||
2038 Opcode == Hexagon::J2_loop0rext ||
2039 Opcode == Hexagon::J2_loop1i ||
2040 Opcode == Hexagon::J2_loop1r ||
2041 Opcode == Hexagon::J2_loop1iext ||
2042 Opcode == Hexagon::J2_loop1rext;
2085 bool HexagonInstrInfo::isNewValue(unsigned Opcode) const {
2086 const uint64_t F = get(Opcode).TSFlags;
2101 bool HexagonInstrInfo::isNewValueJump(unsigned Opcode) const {
2102 return isNewValue(Opcode) && get(Opcode).isBranch() && isPredicated(Opcode);
2112 bool HexagonInstrInfo::isNewValueStore(unsigned Opcode) const {
2113 const uint64_t F = get(Opcode).TSFlags;
2139 bool HexagonInstrInfo::isPredicatedNew(unsigned Opcode) const {
2140 const uint64_t F = get(Opcode).TSFlags;
2141 assert(isPredicated(Opcode));
2153 bool HexagonInstrInfo::isPredicatedTrue(unsigned Opcode) const {
2154 const uint64_t F = get(Opcode).TSFlags;
2162 bool HexagonInstrInfo::isPredicated(unsigned Opcode) const {
2163 const uint64_t F = get(Opcode).TSFlags;
2168 bool HexagonInstrInfo::isPredicateLate(unsigned Opcode) const {
2169 const uint64_t F = get(Opcode).TSFlags;
2174 bool HexagonInstrInfo::isPredictedTaken(unsigned Opcode) const {
2175 const uint64_t F = get(Opcode).TSFlags;
2176 assert(get(Opcode).isBranch() &&
2177 (isPredicatedNew(Opcode) || isNewValue(Opcode)));
2320 bool HexagonInstrInfo::isValidOffset(unsigned Opcode, int Offset,
2323 // the given "Opcode". If "Offset" is not in the correct range, "A2_addi" is
2331 switch (Opcode) {
2374 switch (Opcode) {
2474 llvm_unreachable("No offset range is defined for this opcode. "
2673 bool HexagonInstrInfo::PredOpcodeHasJMP_c(unsigned Opcode) const {
2674 return (Opcode == Hexagon::J2_jumpt) ||
2675 (Opcode == Hexagon::J2_jumpf) ||
2676 (Opcode == Hexagon::J2_jumptnew) ||
2677 (Opcode == Hexagon::J2_jumpfnew) ||
2678 (Opcode == Hexagon::J2_jumptnewpt) ||
2679 (Opcode == Hexagon::J2_jumpfnewpt);
2925 // Returns -1 when there is no opcode found.
2949 if (CondOpcode >= 0) // Valid Conditional opcode/instruction
3105 // Returns the opcode to use when converting MI, which is a conditional jump,
3612 // Returns opcode of the non-extended equivalent instruction.
3723 unsigned HexagonInstrInfo::getValidSubTargets(const unsigned Opcode) const {
3724 const uint64_t F = get(Opcode).TSFlags;
3812 unsigned HexagonInstrInfo::reversePrediction(unsigned Opcode) const {
3814 if (isPredictedTaken(Opcode))
3815 PredRevOpcode = Hexagon::notTakenBranchPrediction(Opcode);
3817 PredRevOpcode = Hexagon::takenBranchPrediction(Opcode);