------- Additional Comments From Hans dot Boehm at hp dot com 2005-08-12 18:51 ------- Could we reopen this as a documentation bug? I'm still confused, and the amount of discussion suggests I'm not alone. Currently "r" is documented as meaning "general register", with no comments about operand size. I naively interpreted this to mean that the size is infered from the operand, which it seems to be in other cases.
"Q" means "a, b, c, or d register for 8-bit instructions that do use upper halves". I don't understand why this applies to xchg. Did you mean "q"? Why are 8 bit registers treated separately, but not 16-bit registers? Why does this only appear to be true for X86? This is unintuitive since it seems that the compiler has enough information to get this right; it just choses not to. Hans -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23242
