【问题标题】:Compiling For Powerpc using gcc使用 gcc 为 Powerpc 编译
【发布时间】:2013-08-21 05:13:10
【问题描述】:

使用 GCC 为 PowerPC (MPC5643L) 编译时,它无法识别 powerISA 2.03 指令。我该如何克服呢?更具体地说,这些大多是 e_ 格式的汇编指令。但是,ghs 和 windriver 不会出现此类问题。

我知道 GCC 不支持 mpc56xx 系列,但在其他支持的目标中支持 powerISA 2.03。

【问题讨论】:

  • 如果您说出您的 GCC 编译器和/或您如何配置它,这可能会有所帮助。最后我检查了一下,Wind River 编译器只是修改了 GCC。
  • 它使用不同的开关和格式,并内置了对 mpc56xx 系列的支持。来自代码源的 gcc 没有。我需要知道我是否可以以某种方式使用 e500 或符合 ppower2.03 的内核进行编译。

标签: gcc powerpc codesourcery


【解决方案1】:

e_se_ 指令是 VLE(可变长度编码)指令。 e_ 是 32 位,se_ 是 16 位。这些只能在 VLE 模式打开时使用。请注意,大多数(如果不是全部)e_ 指令具有等效的经典 PowerPC 指令。

所以真正的问题是:您是否打算使用 VLE?如果没有,请切换回经典说明。如果是,那么我认为您有问题,因为据我所知,gcc/gas 不支持 VLE。我知道 CodeSourcery 正在实施它,但他们在向社区提交更改时遇到了问题。不过我不知道 gcc 中 VLE 支持的当前状态。

【讨论】:

    【解决方案2】:

    这些说明是什么?例子会很受欢迎。我想它们是 SPE(信号处理引擎)指令。我从来没有使用过,但 GCC 有一个选项 -mspe 来启用这些指令的生成。 您可以在以下位置阅读更多信息: http://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html

    还有 -mabi=spe 用于“使用特定扩展名扩展当前 ABI”。我不知道默认值以及您的情况是否需要它。

    【讨论】:

    • 它们是 vle 指令
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多