XCore inline assembly only supports indirect memory constraints, for globals addressed relative to DP (data pointer) or CP (constant pointer) registers. It does not handle non-indirect memory constraints, or non-global memory operands.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
@echristo Thanks for the comment, Eric. I'm happy to do what is expected. Do you mean that it's a bug not to accept these cases, and we should fix it rather than XFAIL? So the build should not be green from XFAIL but only from a fix in this case?
I'm looking at extending XCore inline asm, or at least understanding why it's a problem to handle these cases, to provide more context for any XFAIL.
Currently the only memory operands that XCore inline asm supports are indirect (*m) and they have to be globals. It doesn’t handle locals as operands, or plain “m”. (It doesn’t handle FrameIndex.) So in that sense these tests are expected to fail. As an alternative to XFAIL, I’ve started looking at handling these other cases, or at least finding out what is difficult about them. I suspect there is some difficulty, otherwise the original developer would have done it, but I can’t say what it is yet.