[llvm-branch-commits] [SPARC][IAS] Add support for `prefetcha` instruction (PR #94250)
Sergei Barannikov via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jun 3 16:18:52 PDT 2024
================
@@ -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
More information about the llvm-branch-commits
mailing list