Sun Studio 12:Fortran 用户指南

3.4.149 –xmemalign[=<a><b>]

(SPARC) 指定假定的最大内存对齐以及未对齐的数据访问的行为。

对于可在编译时确定对齐的内存访问,编译器会为数据对齐生成相应的装入/存储指令序列。

对于不能在编译时确定对齐的内存访问,编译器必须假定一个对齐以生成所需的装入/存储序列。

使用 -xmemalign 标志,用户可以指定因上述未确定情况编译器要假定的数据最大内存对齐。它还指定了在运行时发生未对齐内存访问时的错误行为。

指定的值包含两个部分:数值对齐值 <a>,以及字母行为标志 <b>

对齐 <a> 的允许值有:

1

假定最多 1 字节对齐。

2

假定最多 2 字节对齐。

4

假定最多 4 字节对齐。

8

假定最多 8 字节对齐。

16

假定最多 16 字节对齐。

访问未对齐数据时错误行为 <b> 的允许值有:

i

解释访问并继续执行。

s

产生信号 SIGBUS。

f

在 64 位平台上,产生信号 SIGBUS 仅对齐少于或等于 4,否则将解释访问并继续执行。在其他平台上,fi 等效。

如果在不指定 -xmemalign 的情况下进行编译,缺省值为:

对于所有平台,-xmemalign 不带值显示时的缺省值为 1i

请注意,-xmemalign 本身并不强制进行任何特殊的数据对齐。使用 -dalign-aligncommon 可强制进行数据对齐。

-dalign 选项是一个宏:

-dalign 是以下选项的宏:-xmemalign=8s -aligncommon=16

有关详细信息,请参见3.4.2 –aligncommon[ ={1|2|4| 8|16}]