Home | History | Annotate | Download | only in Hexagon

Lines Matching defs:Opcode

359 /// First entry is always the opcode of the branching instruction, except when
361 /// BB with only unconditional jump. Subsequent entries depend upon the opcode,
369 /// Cond[0] = Hexagon::CMPEQri_f_Jumpnv_t_V4 -- specific opcode
1322 // inserting the reversed branching opcode.
1328 unsigned opcode = Cond[0].getImm();
1330 assert(get(opcode).isBranch() && "Should be a branching condition.");
1331 if (isEndLoopN(opcode))
1333 unsigned NewOpcode = getInvertedPredicatedOpcode(opcode);
1815 // Instruction with valid predicated-new opcode can be promoted to .new.
2048 bool HexagonInstrInfo::isEndLoopN(unsigned Opcode) const {
2049 return (Opcode == Hexagon::ENDLOOP0 ||
2050 Opcode == Hexagon::ENDLOOP1);
2108 unsigned Opcode = MI->getOpcode();
2109 const uint64_t F = get(Opcode).TSFlags;
2284 unsigned Opcode = MI->getOpcode();
2285 return Opcode == Hexagon::J2_loop0i ||
2286 Opcode == Hexagon::J2_loop0r ||
2287 Opcode == Hexagon::J2_loop0iext ||
2288 Opcode == Hexagon::J2_loop0rext ||
2289 Opcode == Hexagon::J2_loop1i ||
2290 Opcode == Hexagon::J2_loop1r ||
2291 Opcode == Hexagon::J2_loop1iext ||
2292 Opcode == Hexagon::J2_loop1rext;
2335 bool HexagonInstrInfo::isNewValue(unsigned Opcode) const {
2336 const uint64_t F = get(Opcode).TSFlags;
2351 bool HexagonInstrInfo::isNewValueJump(unsigned Opcode) const {
2352 return isNewValue(Opcode) && get(Opcode).isBranch() && isPredicated(Opcode);
2362 bool HexagonInstrInfo::isNewValueStore(unsigned Opcode) const {
2363 const uint64_t F = get(Opcode).TSFlags;
2389 bool HexagonInstrInfo::isPredicatedNew(unsigned Opcode) const {
2390 const uint64_t F = get(Opcode).TSFlags;
2391 assert(isPredicated(Opcode));
2403 bool HexagonInstrInfo::isPredicatedTrue(unsigned Opcode) const {
2404 const uint64_t F = get(Opcode).TSFlags;
2412 bool HexagonInstrInfo::isPredicated(unsigned Opcode) const {
2413 const uint64_t F = get(Opcode).TSFlags;
2418 bool HexagonInstrInfo::isPredicateLate(unsigned Opcode) const {
2419 const uint64_t F = get(Opcode).TSFlags;
2424 bool HexagonInstrInfo::isPredictedTaken(unsigned Opcode) const {
2425 const uint64_t F = get(Opcode).TSFlags;
2426 assert(get(Opcode).isBranch() &&
2427 (isPredicatedNew(Opcode) || isNewValue(Opcode)));
2661 bool HexagonInstrInfo::isValidOffset(unsigned Opcode, int Offset,
2664 // the given "Opcode". If "Offset" is not in the correct range, "A2_addi" is
2672 switch (Opcode) {
2715 switch (Opcode) {
2817 llvm_unreachable("No offset range is defined for this opcode. "
3116 bool HexagonInstrInfo::PredOpcodeHasJMP_c(unsigned Opcode) const {
3117 return (Opcode == Hexagon::J2_jumpt) ||
3118 (Opcode == Hexagon::J2_jumpf) ||
3119 (Opcode == Hexagon::J2_jumptnew) ||
3120 (Opcode == Hexagon::J2_jumpfnew) ||
3121 (Opcode == Hexagon::J2_jumptnewpt) ||
3122 (Opcode == Hexagon::J2_jumpfnewpt);
3277 short HexagonInstrInfo::getBaseWithLongOffset(short Opcode) const {
3278 if (Opcode < 0)
3280 return Hexagon::getBaseWithLongOffset(Opcode);
3390 // Returns -1 when there is no opcode found.
3414 if (CondOpcode >= 0) // Valid Conditional opcode/instruction
3571 // Returns the opcode to use when converting MI, which is a conditional jump,
4078 // Returns opcode of the non-extended equivalent instruction.
4189 unsigned HexagonInstrInfo::getValidSubTargets(const unsigned Opcode) const {
4190 const uint64_t F = get(Opcode).TSFlags;
4278 unsigned HexagonInstrInfo::reversePrediction(unsigned Opcode) const {
4280 if (isPredictedTaken(Opcode))
4281 PredRevOpcode = Hexagon::notTakenBranchPrediction(Opcode);
4283 PredRevOpcode = Hexagon::takenBranchPrediction(Opcode);