reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
708 OS << "// FastEmit functions for " << Opcode << ".\n"; 709 OS << "\n"; 722 OS << "unsigned fastEmit_" 726 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 727 OS << "("; 728 Operands.PrintParameters(OS); 729 OS << ") {\n"; 731 emitInstructionCode(OS, Operands, PM, getName(RetVT)); 735 OS << "unsigned fastEmit_" 738 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 739 OS << "(MVT RetVT"; 741 OS << ", "; 742 Operands.PrintParameters(OS); 743 OS << ") {\nswitch (RetVT.SimpleTy) {\n"; 747 OS << " case " << getName(RetVT) << ": return fastEmit_" 750 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 751 OS << "("; 752 Operands.PrintArguments(OS); 753 OS << ");\n"; 755 OS << " default: return 0;\n}\n}\n\n"; 759 OS << "unsigned fastEmit_" 762 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 763 OS << "(MVT RetVT"; 765 OS << ", "; 766 Operands.PrintParameters(OS); 767 OS << ") {\n"; 769 OS << " if (RetVT.SimpleTy != " << getName(RM.begin()->first) 774 emitInstructionCode(OS, Operands, PM, "RetVT"); 779 OS << "unsigned fastEmit_" 781 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 782 OS << "(MVT VT, MVT RetVT"; 784 OS << ", "; 785 Operands.PrintParameters(OS); 786 OS << ") {\n"; 787 OS << " switch (VT.SimpleTy) {\n"; 792 OS << " case " << TypeName << ": return fastEmit_" 794 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 795 OS << "(RetVT"; 797 OS << ", "; 798 Operands.PrintArguments(OS); 799 OS << ");\n"; 801 OS << " default: return 0;\n"; 802 OS << " }\n"; 803 OS << "}\n"; 804 OS << "\n"; 807 OS << "// Top-level FastEmit function.\n"; 808 OS << "\n"; 812 OS << "unsigned fastEmit_"; 813 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 814 OS << "(MVT VT, MVT RetVT, unsigned Opcode"; 816 OS << ", "; 817 Operands.PrintParameters(OS); 818 OS << ") "; 820 OS << "override "; 821 OS << "{\n"; 839 OS << " if ("; 840 MI->second[i].emitImmediatePredicate(OS, ImmediatePredicates); 841 OS << ")\n if (unsigned Reg = fastEmit_"; 842 MI->second[i].PrintManglingSuffix(OS, ImmediatePredicates); 843 OS << "(VT, RetVT, Opcode"; 845 OS << ", "; 846 MI->second[i].PrintArguments(OS); 847 OS << "))\n return Reg;\n\n"; 854 OS << " switch (Opcode) {\n"; 859 OS << " case " << Opcode << ": return fastEmit_" 861 Operands.PrintManglingSuffix(OS, ImmediatePredicates); 862 OS << "(VT, RetVT"; 864 OS << ", "; 865 Operands.PrintArguments(OS); 866 OS << ");\n"; 868 OS << " default: return 0;\n"; 869 OS << " }\n"; 870 OS << "}\n"; 871 OS << "\n";