On Fri, 29 Jul 2005 [EMAIL PROTECTED] wrote: >> OK, I guess when I get some time, I'll start testing all the i386 bitop >> functions, comparing the asm with the gcc versions. Now could someone >> explain to me what's wrong with testing hot cache code. Can one >> instruction retrieve from memory better than others? >
Yes! Intel has more than 'load' and 'store' instructions. If memory is in the cache, the following memory operations are shown fastest to slowest... movl (%ebx), %eax # Index-register indirect. Note that # ebx needs to be loaded so the overall # access might be slower. Also some # index registers are faster on # some CPUs (486-> eax is fastest) movl (mem), %eax # Direct from memory into register movl 0x04(%ebx), %eax # Index-register plus displacment movl (%esi, %ebx), %eax # Two register indirect movl 0x04(%esi, %ebx), %eax # Two register plus displacement When using 'movl (men), %eax', "mem" is a 32-bit word that is fetched from the instruction stream while 'movl (%ebx), %eax' is only 2 bytes. Therefore, if an index register can remain loaded with the correct offset or manipulated with 'lea', then single-register indirect memory access is fastest on current ix86 processors. > To add one to Linus' list, note that all current AMD & Intel chips > record instruction boundaries in L1 cache, either predecoding on > L1 cache load, or marking the boundaries on first execution. > > The P4 takes it to an extreme, but P3 and K7/K8 do it too. > > The result is that there are additional instruction decode limits > that apply to cold-cache code. > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > Cheers, Dick Johnson Penguin : Linux version 2.6.12 on an i686 machine (5537.79 BogoMips). Warning : 98.36% of all statistics are fiction. . I apologize for the following. I tried to kill it with the above dot : **************************************************************** The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to [EMAIL PROTECTED] - and destroy all copies of this information, including any attachments, without reading or disclosing them. Thank you. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/