views:

178

answers:

3

What should we expect from the floating point support in 64-bit Delphi compiler?

  • Will 64-bit compiler use SSE to implement floating point arithmetic?

  • Will 64-bit compiler support the current 80-bit floating type (Extended)?

These questions are closely related, so I ask them as a single question.

+3  A: 

According to Marco van de Voort in his answer to: How should I prepare my 32-bit Delphi programs for an eventual 64-bit compiler:

x87 FPU is deprecated on x64, and in general SSE2 will be used for florating point. so floating point and its exception handling might work slightly differently, and extended might not be 80-bit (but 64-bit or, less likely 128-bit). This also relates to the usual rounding (copro controlwork) changes when interfacing wiht C code that expects a different fpu word.

PHis commented on that answer with:

I wouldn't say that the x87 FPU is deprecated, but it is certainly the case that Microsoft have decided to do their best to make it that way (and they really don't seem to like 80-bit FP values), although it is clearly technically possible to use the FPU/80-bit floats on Win64.

lkessler
FPU was deprecated by MS on x86_64 initially (XP64), and afaik its context was not even saved in initial XP64 versions. This was remedied later, but it is still deprecated.
Marco van de Voort
+2  A: 

For the double=extended bit:

Read ALlen Bauer's Twitter account Kylix_rd:

http://twitter.com/kylix_rd

In hindsight logical, because while SSE2 regs are 128 bit, they are used as two 64-bit doubles.

Marco van de Voort