質問

G ++では、ASMのClobberリストを指定できます。たとえば、:

asm ("somecode" : : "r1", "r2", "r3");

つまり、ASMコードの変更はR1、R2、R3をレジスタします。

これで、変更されたレジスタはテンプレートパラメーターによって異なります nasm ブロックはテンプレート関数内にあります)、R1、...、RNをレジスタします。どうすればそれを表現できますか?

役に立ちましたか?

解決

あなたはいくつの異なる登録星座に直面していますか?多すぎない場合は、それぞれに特定の実装を提供できます。 (テンプレートの専門化)

なぜなら、私は「テンプレートされたステートメント」を作成する可能性がないことを理解しているからです。

他のヒント

Clobberリストで使用できるすべてのレジスタを設定できます。これにより、コンパイラは変数の値を保存するためにそれらを使用しません。これは少し遅いことを知っていますが、非常に高い最適化を必要としない場合、それは機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top