我想将 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”中的不可能约束
那么如何解决这个问题,请不要使用宏。我无法修改此函数的用法或声明。