On Mon, Mar 19, 2012 at 5:19 PM, H.J. Lu <hjl.to...@gmail.com> wrote:

>        movl    %fs:0, %eax
>        movq    c@gottpoff(%rip), %rdx
>        movzbl  (%rax,%rdx), %edx
>        movb    %dl, y(%rip)
>        movq    w@gottpoff(%rip), %rdx
>        movzwl  (%rax,%rdx), %eax
>        movw    %ax, i(%rip)
>        ret
>
> It can be
>
>        movq    c@gottpoff(%rip), %rax
>        movzbl  %fs:(%rax), %eax
>        movb    %al, y(%rip)
>        movq    w@gottpoff(%rip), %rax
>        movzwl  %fs:(%rax), %eax
>        movw    %ax, i(%rip)
>        ret

This is just CSE in action. It CSEd movl %fs:0, %eax, since it has to
be zero extended before going into address.

Uros.

Reply via email to