[fpc-pascal] Error in x32 compiler when using SSE3

Jonas Maebe jonas.maebe at elis.ugent.be
Mon May 28 15:11:44 CEST 2012

On 28 May 2012, at 14:41, OBones wrote:

> I'm compiling the program at the end of this message

The program is missing.

> I really need to have the same instruction set used for floating point maths, hence the use of SSE3 in both cases.

If your x86-64 target is Win64, using -CfSSE2/-CfSSE3 will not result in exactly the same fpu instructions on i386 and x86-64 under all circumstances. The reason is that it is impossible to disable 80 bit extended floating point support in the i386 version of the compiler (and impossible to enable it in FPC/Win64). As a result:
a) constants that cannot be represented exactly using double precision will still be parsed as extended precision by the compiler (and as a result, other terms in the same expression will be promoted along with it)
b) several run time library functions and constants are declared using the most precise real type type available on the platform (i.e., extended on i386 and double on Win64)


More information about the fpc-pascal mailing list