================ @@ -557,6 +557,36 @@ ! V9: prefetch [%i1+%i2], #one_read ! encoding: [0xc3,0x6e,0x40,0x1a] prefetch [ %i1 + %i2 ], #one_read + ! V8: error: malformed ASI tag, must be a constant integer expression ---------------- s-barannikov wrote:
It is because parseAbsoluteExpression fails. When it fails, we're no longer allowed to return NoMatch as the method consumes tokens. It should not be called at all if the tokens to be parsed do not look like an expression. I can suggest two ways to overcome this: * Restrict numerical tags to be integer literals and do not use parseAbsoluteExpression. I recall you saying that the numerical tag can indeed be an expression, so this might not be the way to go. * Check that the next token can be a start of an expression before calling parseAbsoluteExpression. Those should be Identifier, Integer, Plus, Minus, LParen, and possibly Tilde and Exclaim. Such kind of check is performed in, e.g., parseCallTarget and parseSparcAsmOperand. https://github.com/llvm/llvm-project/pull/94250 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits