Messages in this thread | | | Subject | RE: Intel vs AMD x86-64 | Date | Tue, 24 Feb 2004 15:15:18 -0800 | From | "Nakajima, Jun" <> |
| |
>Could you publish list of differences between amd64 and ia32e? > >I probably could took those two 300+ page documents and try to compare >them by hand, but I believe you know already. > > Pavel
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:
Fast system calls: Syscall/sysret is supported only in 64-bit mode (not in compatibility mode). Sysenter/Sysexit is supported in both 64-bit and compatible mode.
CPUID: If you look at Table 2-8 of Volume 1, you will find IA-32e specific things, including, GenuineIntel, HT, SSE3, monitor/mwait, Intel Enhanced SpeedStep, and cmpxchg16b.
The function 8000_0001h doesn't duplicate standard-feature bits from function 1 in EDX. It sets only the new features that are implemented.
MSRs: Not all MSRs are architectural, and IA-32e does not implement SYSCFG, TOP_MEM, TOP_MEM2, for example. MSR usage should be vendor specific and be guarded with CPUID.Model
Fast-FXSAVE/FXRSTOR: IA-32e always saves all of the FP state on FXSAVE/FXRSTOR. Does not support FXSAVE/FXRSTOR with reduced FP state.
Microcode Update: IA-32e supports microcode update as the 32-bit mode does, as you already found the discussions in the mailing list.
NX (No-Execute) bit: Initial implementation will not support the NX bit.
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.
Near branch with 66H prefix: As documented in PRM the behavior is implementation specific and should avoid using 66H prefix on near branches.
Not supported in IA-32e ======================= 3DNow instructions (including prefecthw or prefetch with the opcode 0f 0d)
Thanks, Jun
>-----Original Message----- >From: Pavel Machek [mailto:pavel@ucw.cz] >Sent: Tuesday, February 24, 2004 5:25 AM >To: Nakajima, Jun >Cc: Linus Torvalds; Adrian Bunk; Herbert Poetzl; Mikael Pettersson; Kernel >Mailing List >Subject: Re: Intel vs AMD x86-64 > >Hi! > >> Sorry for the miscommunication. The page >> http://www.intel.com/technology/64bitextensions/faq.htm says at the >> _bottom_ at least: >> >> Q9: Is it possible to write software that will run on Intel's processors >> with 64-bit extension technology, and AMD's 64-bit capable processors? >> A9: With both companies designing entirely different architectures, the >> question is whether the operating system and software ported to each >> processor will run on the other processor, and the answer is yes in most >> cases. > >Could you publish list of differences between amd64 and ia32e? > >I probably could took those two 300+ page documents and try to compare >them by hand, but I believe you know already. > Pavel > >-- >When do you have a heart between your knees? >[Johanka's followup: and *two* hearts?] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |