Lines Matching full:osi
723 ConsumeWhitespace(llvm::StringRef::const_iterator osi, in ConsumeWhitespace() argument
725 while (osi != ose) { in ConsumeWhitespace()
726 switch (*osi) { in ConsumeWhitespace()
728 return osi; in ConsumeWhitespace()
733 ++osi; in ConsumeWhitespace()
736 return osi; in ConsumeWhitespace()
740 ConsumeChar(llvm::StringRef::const_iterator osi, const char c, in ConsumeChar() argument
744 osi = ConsumeWhitespace(osi, ose); in ConsumeChar()
745 if (osi != ose && *osi == c) { in ConsumeChar()
747 ++osi; in ConsumeChar()
750 return std::make_pair(found, osi); in ConsumeChar()
754 ParseRegisterName(llvm::StringRef::const_iterator osi, in ParseRegisterName() argument
760 osi = ConsumeWhitespace(osi, ose); in ParseRegisterName()
762 while (osi != ose) { in ParseRegisterName()
763 if (*osi >= '0' && *osi <= '9') { in ParseRegisterName()
765 return std::make_pair(Operand(), osi); in ParseRegisterName()
767 str.push_back(*osi); in ParseRegisterName()
769 } else if (*osi >= 'a' && *osi <= 'z') { in ParseRegisterName()
770 str.push_back(*osi); in ParseRegisterName()
772 switch (*osi) { in ParseRegisterName()
775 return std::make_pair(Operand(), osi); in ParseRegisterName()
778 return std::make_pair(ret, osi); in ParseRegisterName()
782 return std::make_pair(Operand(), osi); in ParseRegisterName()
787 ++osi; in ParseRegisterName()
791 return std::make_pair(ret, osi); in ParseRegisterName()
795 ParseImmediate(llvm::StringRef::const_iterator osi, in ParseImmediate() argument
802 osi = ConsumeWhitespace(osi, ose); in ParseImmediate()
804 while (osi != ose) { in ParseImmediate()
805 if (*osi >= '0' && *osi <= '9') { in ParseImmediate()
806 str.push_back(*osi); in ParseImmediate()
807 } else if (*osi >= 'a' && *osi <= 'f') { in ParseImmediate()
809 str.push_back(*osi); in ParseImmediate()
811 return std::make_pair(Operand(), osi); in ParseImmediate()
814 switch (*osi) { in ParseImmediate()
817 return std::make_pair(Operand(), osi); in ParseImmediate()
820 return std::make_pair(ret, osi); in ParseImmediate()
825 str.push_back(*osi); in ParseImmediate()
827 return std::make_pair(Operand(), osi); in ParseImmediate()
833 return std::make_pair(Operand(), osi); in ParseImmediate()
840 return std::make_pair(Operand(), osi); in ParseImmediate()
844 ++osi; in ParseImmediate()
848 return std::make_pair(ret, osi); in ParseImmediate()
853 ParseIntelIndexedAccess(llvm::StringRef::const_iterator osi, in ParseIntelIndexedAccess() argument
856 ParseImmediate(osi, ose); in ParseIntelIndexedAccess()
858 osi = offset_and_iterator.second; in ParseIntelIndexedAccess()
862 std::tie(found, osi) = ConsumeChar(osi, '(', ose); in ParseIntelIndexedAccess()
864 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
868 ParseRegisterName(osi, ose); in ParseIntelIndexedAccess()
870 osi = base_and_iterator.second; in ParseIntelIndexedAccess()
872 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
875 std::tie(found, osi) = ConsumeChar(osi, ',', ose); in ParseIntelIndexedAccess()
877 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
881 ParseRegisterName(osi, ose); in ParseIntelIndexedAccess()
883 osi = index_and_iterator.second; in ParseIntelIndexedAccess()
885 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
888 std::tie(found, osi) = ConsumeChar(osi, ',', ose); in ParseIntelIndexedAccess()
890 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
894 multiplier_and_iterator = ParseImmediate(osi, ose); in ParseIntelIndexedAccess()
896 osi = index_and_iterator.second; in ParseIntelIndexedAccess()
898 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
901 std::tie(found, osi) = ConsumeChar(osi, ')', ose); in ParseIntelIndexedAccess()
903 return std::make_pair(Operand(), osi); in ParseIntelIndexedAccess()
925 return std::make_pair(deref, osi); in ParseIntelIndexedAccess()
930 return std::make_pair(deref, osi); in ParseIntelIndexedAccess()
936 ParseIntelDerefAccess(llvm::StringRef::const_iterator osi, in ParseIntelDerefAccess() argument
939 ParseImmediate(osi, ose); in ParseIntelDerefAccess()
941 osi = offset_and_iterator.second; in ParseIntelDerefAccess()
945 std::tie(found, osi) = ConsumeChar(osi, '(', ose); in ParseIntelDerefAccess()
947 return std::make_pair(Operand(), osi); in ParseIntelDerefAccess()
951 ParseRegisterName(osi, ose); in ParseIntelDerefAccess()
953 osi = base_and_iterator.second; in ParseIntelDerefAccess()
955 return std::make_pair(Operand(), osi); in ParseIntelDerefAccess()
958 std::tie(found, osi) = ConsumeChar(osi, ')', ose); in ParseIntelDerefAccess()
960 return std::make_pair(Operand(), osi); in ParseIntelDerefAccess()
972 return std::make_pair(deref, osi); in ParseIntelDerefAccess()
977 return std::make_pair(deref, osi); in ParseIntelDerefAccess()
983 ParseARMOffsetAccess(llvm::StringRef::const_iterator osi, in ParseARMOffsetAccess() argument
986 std::tie(found, osi) = ConsumeChar(osi, '[', ose); in ParseARMOffsetAccess()
988 return std::make_pair(Operand(), osi); in ParseARMOffsetAccess()
992 ParseRegisterName(osi, ose); in ParseARMOffsetAccess()
994 osi = base_and_iterator.second; in ParseARMOffsetAccess()
996 return std::make_pair(Operand(), osi); in ParseARMOffsetAccess()
999 std::tie(found, osi) = ConsumeChar(osi, ',', ose); in ParseARMOffsetAccess()
1001 return std::make_pair(Operand(), osi); in ParseARMOffsetAccess()
1005 ParseImmediate(osi, ose); in ParseARMOffsetAccess()
1007 osi = offset_and_iterator.second; in ParseARMOffsetAccess()
1010 std::tie(found, osi) = ConsumeChar(osi, ']', ose); in ParseARMOffsetAccess()
1012 return std::make_pair(Operand(), osi); in ParseARMOffsetAccess()
1023 return std::make_pair(deref, osi); in ParseARMOffsetAccess()
1028 ParseARMDerefAccess(llvm::StringRef::const_iterator osi, in ParseARMDerefAccess() argument
1031 std::tie(found, osi) = ConsumeChar(osi, '[', ose); in ParseARMDerefAccess()
1033 return std::make_pair(Operand(), osi); in ParseARMDerefAccess()
1037 ParseRegisterName(osi, ose); in ParseARMDerefAccess()
1039 osi = base_and_iterator.second; in ParseARMDerefAccess()
1041 return std::make_pair(Operand(), osi); in ParseARMDerefAccess()
1044 std::tie(found, osi) = ConsumeChar(osi, ']', ose); in ParseARMDerefAccess()
1046 return std::make_pair(Operand(), osi); in ParseARMDerefAccess()
1052 return std::make_pair(deref, osi); in ParseARMDerefAccess()
1100 llvm::StringRef::const_iterator osi = operands_ref.begin(); in ParseOperands() local
1103 while (osi != ose) { in ParseOperands()
1107 if ((std::tie(operand, iter) = ParseIntelIndexedAccess(osi, ose), in ParseOperands()
1109 (std::tie(operand, iter) = ParseIntelDerefAccess(osi, ose), in ParseOperands()
1111 (std::tie(operand, iter) = ParseARMOffsetAccess(osi, ose), in ParseOperands()
1113 (std::tie(operand, iter) = ParseARMDerefAccess(osi, ose), in ParseOperands()
1115 (std::tie(operand, iter) = ParseRegisterName(osi, ose), in ParseOperands()
1117 (std::tie(operand, iter) = ParseImmediate(osi, ose), in ParseOperands()
1119 osi = iter; in ParseOperands()
1126 ConsumeChar(osi, ',', ose); in ParseOperands()
1128 osi = found_and_iter.second; in ParseOperands()
1131 osi = ConsumeWhitespace(osi, ose); in ParseOperands()