Julian Elischer wrote:
>         movl    $((foo)*PAGE_SIZE), %eax ; \
>         movl    $((foo)*PAGE_SIZE),%ecx ; \

> might it be a very slight optimisation to change this to:
>         movl    $((foo)*PAGE_SIZE), %eax ; \
>         movl    %eax, %ecx ; \

I don't know to much about the micro-architecture of the x86 family, but
we know that the value of $((foo)*PAGE_SIZE) is cached. So the ld into
%ecx might not take more time than a register copy and if it does, it
can probably be performed in parallel. The register copy however must be
performed before the "addl %esi, %eax", adding to the dependency graph
of %eax and decreasing parallelism on the critical path.

In short: I don't think micro-optimizations should be made without
benchmark results :-)

Marcel Moolenaar
  tel:  (408) 447-4222

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to