https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118465
Paolo Bonzini <bonzini at gnu dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bonzini at gnu dot org --- Comment #1 from Paolo Bonzini <bonzini at gnu dot org> --- Note %rbx is used, via %bh, to extract bits 8-15 of %r9: movl %r9d, %ebx movzbl %r9b, %edi movzbl %bh, %ebx movl %ebx, %r9d This could be just movzbl %r9b, %edi shrl $8, %r9 movzbl %r9b, %r9d But if it's indeed due to stack alignment (didn't check), GCC is not wrong in noticing it can use %ebx.