1

我正在为 PowerPC 使用Diab C 编译器 (v5.3.1.0),并且需要将 MSR 复制到函数的局部变量中。Diab 不支持 GCC 风格的 C 表达式扩展,因此 "mfmsr %0\n" : "=r" (msr) 不起作用。简单地引用变量 (mfmsr msr) 也不起作用。该文档在访问 C 变量时大多保持沉默,尽管它确实说内联汇编有利​​于使用静态变量,但没有给出示例。

有什么建议或例子吗?

4

1 回答 1

3

盯着文档终于把我带到了 asm 宏。我创建了一个看起来很像 C 函数的汇编器宏并调用它。

__asm INT32U getMSR ()
{
   ! "r3"  /* Scratch register.*/

   mfmsr    r3
}

以及我想在哪里获得 MSR:

{
...
msr = getMSR ();
...
}
于 2013-07-02T20:04:09.207 回答