[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-kernel
Subject:    RE: Intel vs AMD x86-64
From:       "Nakajima, Jun" <jun.nakajima () intel ! com>
Date:       2004-02-24 23:15:18
Message-ID: 7F740D512C7C1046AB53446D37200173EA2684 () scsmsx402 ! sc ! intel ! com
[Download RAW message or body]

>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/
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic