0

我想将 mtspr 指令用于特殊用途的寄存器,其编号在函数中传递给我。

__MTSPR(unsigned int spr, long long val)

我必须把 val 放在 spr 中。

这是我徒劳的尝试。

    __asm__(
    "mtspr     %[a], %[b] "
    : : [a]"I"(spr), [b]"r"(val)
);  

我收到此错误:

ppc_gnu.c:在函数“__MTSPR”中:ppc_gnu.c:69:2:警告:asm 操作数 0 可能与约束不匹配 [默认启用] ppc_gnu.c:69:2:错误:“asm”中的不可能约束

那么如何解决这个问题,请不要使用宏。我无法修改此函数的用法或声明。

4

0 回答 0