[Bug middle-end/53623] [4.7/4.8 Regression] sign extension is effectively split into two x86-64 instructions

adam at consulting dot net.nz gcc-bugzilla@gcc.gnu.org
Sun Jun 10 23:32:00 GMT 2012


--- Comment #3 from Adam Warner <adam at consulting dot net.nz> 2012-06-10 23:32:19 UTC ---
(Off topic "Note" correction)

In my previous note I suggested the instruction "movsbq dh -> rdx". There is no
such instruction! One cannot encode register ah/bh/ch/dh in an instruction
requiring a REX prefix. A REX prefix would be required for sign extending
ah/bh/ch/dh to 64 bits.

My note does apply to zero extending dh to 64 bits. "movzbl dh -> edx" achieves
this since edx is implicitly zero extended to rdx.

More information about the Gcc-bugs mailing list