関数で番号が渡された専用レジスタに mtspr 命令を使用したいと考えています。
__MTSPR(unsigned int spr, long long val)
私はsprにvalを入れなければなりません。
これが私が無駄に試したことです。
__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 を使用しないでください。この関数の使用方法または宣言を変更することはできません。