在 Oracle Developer Studio 12.5 和以前的发行版中,对于 32 位 Oracle Solaris OS,缺省地址空间模型为 –m32。但是,在 Linux 上,对于 32 位硬件,缺省值为 –m32;对于 64 位硬件,缺省值为 –m64。
对于 SPARC,缺省值为 –xarch=sparc。
对于 x86,缺省值为 –xarch=sse2。
在新的 x86 中,缺省值 –m32 -xarch=sse2 与以前的缺省值 –m32 –xarch=386 实现相同的 ABI。浮点操作数和结果在 x87 浮点寄存器中传递。但是,以下单精度和双精度浮点运算通常在 sse2 寄存器中执行。
+
-
*
/
sqrt
convert
x87 寄存器仍用于长双精度型运算以及硬件初等超越函数求值。
这意味着 x86 缺省编译的浮点计算结果,相对于以前的 Studio 发行版,即使在相同的硬件和操作系统上,也可能会与 Oracle Developer Studio 12.5 略有不同。