powerpc gcc内联汇编函数
我想将mtspr指令用于一个特殊用途寄存器,该寄存器的编号在函数中传递给我powerpc gcc内联汇编函数,gcc,powerpc,Gcc,Powerpc,我想将mtspr指令用于一个特殊用途寄存器,该寄存器的编号在函数中传递给我 __MTSPR(unsigned int spr, long long val) 我必须把瓦尔放在spr里 这是我徒劳的尝试 __asm__( "mtspr %[a], %[b] " : : [a]"I"(spr), [b]"r"(val) ); 我得到这个错误: ppc_gnu.c:在函数“uu MTSPR”中: ppc_gnu.c:69:2:警告:asm操作数0可能与约束不匹配
__MTSPR(unsigned int spr, long long val)
我必须把瓦尔放在spr里
这是我徒劳的尝试
__asm__(
"mtspr %[a], %[b] "
: : [a]"I"(spr), [b]"r"(val)
);
我得到这个错误:
ppc_gnu.c:在函数“uu MTSPR”中:
ppc_gnu.c:69:2:警告:asm操作数0可能与约束不匹配[默认情况下已启用]
ppc_gnu.c:69:2:错误:“asm”中的不可能约束
那么如何解决这个问题,请不要使用宏。我无法修改此函数的用法或声明。请参见此处:。(与u-boot相关的答案)。您可以在函数中使用该宏。谢谢。看起来我被宏的用法卡住了