That syntax is nothing like your other working example. If (PCintPort::curr) is intended to be an input operand, shouldn't it be quoted? And probably separated by a colon from "+M" if that is intended to be an output operand.
If you aren't sure of the syntax of the assembler, I suggest you disassemble a bit of C++ that includes a reference to the type of variable you're after, and see what you get.
Are you sure you know what you're doing? I think it's m not M but I am not sure. With inline asm the best technique is to search Google for as many examples as you can find of other people using it as it is not very well documented, the only way is to find someone elses example that works and copy it. Then disassemble the elf file and make sure it looks like it has done what you expect!
If you aren't sure of the syntax of the assembler, I suggest you disassemble a bit of C++ that includes a reference to the type of variable you're after, and see what you get.
I did that. I got "0x0160" which is the memory location of the variable. Of course, that will change as soon as I change my sketch... So I need to refer to it symbolically in my asm statement, which indeed I'm unaware of the syntax. Google searching proved fruitless to me.