Lines Matching defs:AsmPieces
59760 static bool clobbersFlagRegisters(const SmallVector<StringRef, 4> &AsmPieces) {
59762 if (AsmPieces.size() == 3 || AsmPieces.size() == 4) {
59763 if (llvm::is_contained(AsmPieces, "~{cc}") &&
59764 llvm::is_contained(AsmPieces, "~{flags}") &&
59765 llvm::is_contained(AsmPieces, "~{fpsr}")) {
59767 if (AsmPieces.size() == 3)
59769 else if (llvm::is_contained(AsmPieces, "~{dirflag}"))
59786 SmallVector<StringRef, 4> AsmPieces;
59787 SplitString(AsmStr, AsmPieces, ";\n");
59789 switch (AsmPieces.size()) {
59797 if (matchAsm(AsmPieces[0], {"bswap", "$0"}) ||
59798 matchAsm(AsmPieces[0], {"bswapl", "$0"}) ||
59799 matchAsm(AsmPieces[0], {"bswapq", "$0"}) ||
59800 matchAsm(AsmPieces[0], {"bswap", "${0:q}"}) ||
59801 matchAsm(AsmPieces[0], {"bswapl", "${0:q}"}) ||
59802 matchAsm(AsmPieces[0], {"bswapq", "${0:q}"})) {
59811 (matchAsm(AsmPieces[0], {"rorw", "$$8,", "${0:w}"}) ||
59812 matchAsm(AsmPieces[0], {"rolw", "$$8,", "${0:w}"}))) {
59813 AsmPieces.clear();
59815 SplitString(StringRef(ConstraintsStr).substr(5), AsmPieces, ",");
59816 array_pod_sort(AsmPieces.begin(), AsmPieces.end());
59817 if (clobbersFlagRegisters(AsmPieces))
59824 matchAsm(AsmPieces[0], {"rorw", "$$8,", "${0:w}"}) &&
59825 matchAsm(AsmPieces[1], {"rorl", "$$16,", "$0"}) &&
59826 matchAsm(AsmPieces[2], {"rorw", "$$8,", "${0:w}"})) {
59827 AsmPieces.clear();
59829 SplitString(StringRef(ConstraintsStr).substr(5), AsmPieces, ",");
59830 array_pod_sort(AsmPieces.begin(), AsmPieces.end());
59831 if (clobbersFlagRegisters(AsmPieces))
59841 if (matchAsm(AsmPieces[0], {"bswap", "%eax"}) &&
59842 matchAsm(AsmPieces[1], {"bswap", "%edx"}) &&
59843 matchAsm(AsmPieces[2], {"xchgl", "%eax,", "%edx"}))