Re: Intel vs AMD x86-64

Andi Kleen
2004-02-24T23:49:22Z

"Nakajima, Jun" <jun.nakajima@intel.com> writes:

> Other than the standard IA-32 differences (eg. HT, SSE3, Intel Enhanced
> SpeedStep, etc.), there are few differences between the implementations
> of
> IA-32e and AMD64. The software visible ones are:

Thanks for the detailed list.

> BSF/BSR when source is 0 & operand size is 32:
> In 64-bit mode, the processor sets ZF, and the upper 32 bits of
> the destination are undefined. Should always check the ZF or do not
> use
> 32-bit operand size.

This one sounds a bit scary. I think it could hurt the
asm-x86_64/bitops.h:find_first_zero_bit if there is a race that
changes the value in memory between the last scasl and the bsfl
and the inliner assumes the edx output argument is zero extended.
Hopefully that case should be unlikely enough. I guess best would
be to change the function to use 64bit accesses to avoid this completely.

-Andi