Why isn't my asm matching?

Hi guys, I’m working on: http://llvm.org/bugs/show_bug.cgi?id=19117

I’ve already gotten it to the point where it properly handles the ‘.’ operator in the inline asm, thankfully that one already had a function implemented for it. Now I’m getting a new error about invalid operands. To test, I have modified the code from the PR to the following:

int foo (LARGE_INTEGER LargeInteger, int x )
__asm {
mov eax, LargeInteger.LowPart
mov eax, x

The first asm line crashes, because it cannot find a match. The second one works without issue. I’m currently poking around in the depths of validateOperandClass in x86GenAsmMatcher.inc. Any help or pointers would be appreciated.


Replied here: http://llvm.org/bugs/show_bug.cgi?id=19117#c3