[fpc-devel] cross copiling x86_64 to i386 ?
jonas.maebe at elis.ugent.be
Fri Aug 31 00:29:09 CEST 2012
On 30 Aug 2012, at 23:50, Dimitrios Chr. Ioannidis wrote:
> Στις 31/8/2012 12:49 πμ, ο/η Jonas Maebe έγραψε:
>> On 30 Aug 2012, at 23:29, Dimitrios Chr. Ioannidis wrote:
>>> Quoting from http://www.agner.org/optimize/calling_conventions.pdf :
>> http://msdn.microsoft.com/en-us/library/ee418798(VS.85).aspx#Porting_to_64bit :
>> "The x87, MMX, and 3DNow! instruction sets are deprecated in 64-bit modes. The instructions sets are still present for backward compatibility for 32-bit mode; however, to avoid compatibility issues in the future, their use in current and future projects is discouraged."
> in VS ver. 2005, 2010, 2012 has :
> "The MMX and floating-point stack registers (MM0-MM7/ST0-ST7) are preserved across context switches. There is no explicit calling convention for these registers. The use of these registers is strictly prohibited in kernel mode code."
That is unrelated to whether or not their use is deprecated. If they weren't preserved across context switches, virtually no 32 bit Windows program would still work on 64 bit Windows.
More information about the fpc-devel