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
  mail: [EMAIL PROTECTED] / [EMAIL PROTECTED]
  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