This is GCC Bugzilla
This is GCC Bugzilla Version 2.20+
View Bug Activity | Format For Printing | Clone This Bug
It seems that I can use "%k0" (rather than just "%0") in an asm template to force the (register) operand to "long" size (i.e. a value in %al referenced as %k0 comes out as %eax in the generated assembly). This doesn't seem to be documented anywhere. I presume there may be other such character prefixes which have similar functions.
I should add that I'm prepared to send a patch for the documentation if someone will tell me what the operands are and what they do.
Every target have slightly different operand modifiers. They are usually "documented" in config/*/*.md or config/*/*.c, but I think it is incorrect to documented them for real because people will then abuse them.
You've got to be kidding - these things are genuinely useful. What sort of abuse are you worried about? In any case, I'd like to know if that is the general consensus among maintainers. I'm not going to write documentation and submit a patch if it's not going to be accepted.