什么是EM_SPARC32PLUS?

时间:2014-05-07 00:04:20

标签: elf sparc

我发现Linux和GNU Binutils在ELF标头中定义了一个特殊的机器类型EM_SPARC32PLUS。为什么需要它?什么使SPARC V8 +特别无法使用EM_SPARC

我认为新机器类型应该有一个重要原因,因为它会破坏与旧程序的兼容性,而且所有其他架构都倾向于尽可能长时间地使用旧机器类型。

1 个答案:

答案 0 :(得分:2)

elf-em.h开始,我们看到以下(挑选出来的)条目:

#define EM_SPARC        2
#define EM_SPARC32PLUS  18      /* Sun's "v8plus" */
#define EM_SPARCV9      43      /* SPARC v9 64-bit */

一些谷歌搜索引导我进入this reference page的Sun Studio 12,其中说:

  

了v8plus

     

编译SPARC-V9 ISA的V8plus版本。根据定义,V8plus意味着V9 ISA,但仅限于V8plus ISA规范定义的32位子集,没有可视指令集(VIS),也没有其他特定于实现的ISA扩展。

     

此选项使编译器能够在V8plus ISA上生成良好性能的代码。

     

生成的目标代码采用SPARC-V8 + ELF32格式,仅在Solaris UltraSPARC环境中执行 - 它不能在V7或V8处理器上运行。

     

示例:任何基于UltraSPARC芯片架构的系统

它似乎基本上是UltraSPARC的V9架构的32位版本。

另见: