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