Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Expert Assembler Question

Author: Gerd Isenberg

Date: 00:41:36 08/27/05

Go up one level in this thread


On August 26, 2005 at 18:12:30, Ed Schröder wrote:

>I am no longer up-to-date regarding the newest processors (such as the AMD-64)
>and the internal working concerning speed, hence my question:
>
>Which (similar) code is faster?
>
>       test    byte ptr xxx,1    |        test    byte ptr xxx,1
>       je      label             |        mov     AL,[ECX]
>       mov     AL,[ECX]          |        je      label
>       mov     BL,[EDX]          |        mov     BL,[EDX]
>       ...     ........          |        ...     ........
>       ...     ........          |        ...     ........
>label:                           | label:
>
>Thanks in advance,
>
>Ed

Hi Ed,

the conditional jump target is taken from the branch target buffer based on
recent targets anyway. I usually prefere your second one, to try to "hide" the
latency the zero flag becomes valid (you might also have cache misses of the
memory reads as well), but with todays super pipelined processors with huge
branch heuristics and out of order execution, i guess that doesn't matter much.

Gerd



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.