我想将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'中不可能的约束
所以如何解决这个问题,请不要MACRO。我无法修改此功能的用法或声明。