@@ -2469,15 +2469,18 @@ std::string getReqFeatures(StringRef const &TargetName, AsmMatcherInfo &AMI,
24692469 std::string Flags = " { " ;
24702470 std::string Mn = getNormalMnemonic (MI);
24712471 // The debug if
2472- if (CGI->isBranch && !CGI->isCall ) {
2472+ if (( CGI->isBranch || CGI-> isReturn ) && !CGI->isCall ) {
24732473 Flags += TargetName.str () + " _GRP_JUMP, " ;
24742474 }
2475+ if (CGI->isReturn ) {
2476+ Flags += TargetName.str () + " _GRP_RET, " ;
2477+ }
24752478 if (CGI->isCall ) {
24762479 Flags += TargetName.str () + " _GRP_CALL, " ;
24772480 }
24782481 for (const auto &OpInfo : CGI->Operands .OperandList ) {
24792482 if (OpInfo.OperandType == " MCOI::OPERAND_PCREL" &&
2480- (CGI->isBranch || CGI->isIndirectBranch || CGI->isCall )) {
2483+ (CGI->isBranch || CGI->isReturn || CGI-> isIndirectBranch || CGI->isCall )) {
24812484 Flags += TargetName.str () + " _GRP_BRANCH_RELATIVE, " ;
24822485 }
24832486 }
@@ -2747,7 +2750,7 @@ void printInsnMapEntry(StringRef const &TargetName, AsmMatcherInfo &AMI,
27472750 InsnMap.indent (4 ) << getImplicitUses (TargetName, CGI) << " , " ;
27482751 InsnMap << getImplicitDefs (TargetName, CGI) << " , " ;
27492752 InsnMap << getReqFeatures (TargetName, AMI, MI, UseMI, CGI) << " , " ;
2750- InsnMap << (CGI->isBranch ? " 1" : " 0" ) << " , " ;
2753+ InsnMap << (( CGI->isBranch || CGI-> isReturn ) ? " 1" : " 0" ) << " , " ;
27512754 InsnMap << (CGI->isIndirectBranch ? " 1" : " 0" ) << " , " ;
27522755 InsnMap << getArchSupplInfo (TargetName, CGI, PPCFormatEnum) << " ,\n " ;
27532756 InsnMap.indent (4 ) << getCSOpcodeEncoding (CGI);
0 commit comments