------- Comment #1 from rask at sygehus dot dk  2007-07-11 08:53 -------
I think (1) and (2) is just the register allocator being stupid. This sort of
thing can happen when the %rax at (1) was a different pseudo register than the
%rax at (2). The register allocator is supposed to be able to tie such pseudo
registers, but it does not take a lot to mess that up.
You should use -dp when posting asm output intended for human readers (although
in this case, I don't think you need to repost the asm output just to include
the -dp output).

        movq    %rax, %rbx      # 95    *movdi_1_rex64/2        [length = 6]
        andq    %r8, %rbx       # 25    *anddi_1_rex64/2        [length = 3]
        movq    %rbx, %rax      # 96    *movdi_1_rex64/2        [length = 6]

Notice that the movq insns have much higher insn uids than the andq insn. I.e.
they were most likely emitted in a later pass.
(And those movq insn lenghts are wrong, they should be 3 instead of 6.)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32725

Reply via email to