break;
case '$': {
+ if (InTok) {
+ AsmOperands.push_back(AsmOperand(String.slice(Prev, i)));
+ InTok = false;
+ }
+
// If this isn't "${", treat like a normal token.
if (i + 1 == String.size() || String[i + 1] != '{') {
- if (InTok) {
- AsmOperands.push_back(AsmOperand(String.slice(Prev, i)));
- InTok = false;
- }
Prev = i;
break;
}
- if (InTok) {
- AsmOperands.push_back(AsmOperand(String.slice(Prev, i)));
- InTok = false;
- }
-
StringRef::iterator End = std::find(String.begin() + i, String.end(),'}');
assert(End != String.end() && "Missing brace in operand reference!");
size_t EndPos = End - String.begin();
continue;
}
+ if (Token.size() > 1 && isdigit(Token[1])) {
+ Op.Class = getTokenClass(Token);
+ continue;
+ }
+
// Otherwise this is an operand reference.
StringRef OperandName;
if (Token[1] == '{')