下表提供了 SPARC 平台上每个 -xarch 关键字的详细信息。
表 A–23 用于 SPARC 平台的 -xarch 标志
标志 |
含义 |
---|---|
generic |
使用大多数处理器通用的指令集。这是缺省值。 |
generic64 |
为了在大多数 64 位 平台上获得良好性能而进行编译。(仅限 Solaris)。 该选项等效于 -m64 -xarch=generic,用于与早期的发行版兼容。可使用 -m64 指定 64 位编译,来取代 - xarch=generic64。 |
native |
为了在此系统上获得良好性能而进行编译。编译器为运行它的当前系统处理器选择适当的设置。 |
native64 |
编译以在此系统中取得良好的性能(仅限 Solaris)。该选项等效于 -m64 -xarch=native,用于与早期的发行版兼容。 |
sparc |
针对 SPARC-V9 ISA (但不带有可视化指令集 (Visual Instruction Set, VIS),也不带有其他特定于实现的 ISA 扩展)进行编译。该选项在 V9 ISA 上使编译器生成高性能代码。 |
sparcvis |
针对 SPARC-V9 加可视指令集 (Visual Instruction Set, VIS) 版本 1.0 进行编译,并具有 UltraSPARC 扩展。该选项在 UltraSPARC 体系结构上使编译器生成高性能代码。 |
sparcvis2 |
此选项允许编译器在具有 UltraSPARC III 扩展的 UltraSPARC 体系结构以及可视化指令集 (VIS) 2.0 版上生成目标代码。 |
sparcvis3 |
针对 SPARC-V9 ISA 的 SPARC VIS 版本 3 进行编译。允许编译器使用 SPARC-V9 指令集、UltraSPARC 扩展(包括可视指令集 (Visual Instruction Set, VIS) 版本 1.0、UltraSPARC-III 扩展(包括可视指令集版本 2.0 以及混合乘加指令和可视指令集版本 3.0 中的指令。 |
sparcfmaf |
允许编译器使用 SPARC-V9 指令集,加 UltraSPARC 扩展(包括可视指令集 (Visual Instruction Set, VIS) 版本 1.0)、UltraSPARC-III 扩展(包括可视指令集 (Visual Instruction Set, VIS) 版本 2.0)以及面向浮点乘加的 SPARC64 VI 扩展中的指令。 必须将 -xarch=sparcfmaf 与 fma=fused 结合使用,并具有某个优化级别,以使编译器尝试查找机会来自动使用乘加指令。 |
sparcima |
针对 SPARC-V9 ISA 的 sparcima 版本进行编译。使编译器可以使用如下指令集内的指令:SPARC-V9 指令集、UltraSPARC 扩展(包括可视化指令集 (Visual Instruction Set, VIS) 版本 1.0)、UltraSPARC-III 扩展(包括可视化指令集 (Visual Instruction Set, VIS) 版本 2.0)、SPARC64 VI 扩展(用于浮点乘加)和 SPARC64 VII 扩展(用于整数乘加)。 |
v9 |
等效于 -m64 -xarch=sparc。使用 -xarch=v9 来获取 64 位内存模型的传统 makefile 和脚本仅需使用 -m64。 |
v9a |
等效于 -m64 -xarch=sparcvis,用于与早期发行版兼容。 |
v9b |
等效于 -m64 -xarch=sparcvis2,用于与早期发行版兼容。 |
另请注意:
用 generic,sparc, sparcvis2, sparcvis3, sparcfmaf, sparcima 编译的对象二进制文件 (.o) 可以链接起来并一起执行,但只能在支持链接的所有指令集的处理器上运行。
对于任何特定选择,生成的可执行文件在传统体系结构中可能不运行或运行缓慢。而且,由于所有指令集中均未实现四精度 (long double) 浮点指令,因此编译器不在其生成的代码中使用这些指令。