0
SMLAWy
命令を使用して、下位32ビットをデスティネーションレジスタに格納します。しかし、ドキュメントによれば、SMLAWy
命令は、48ビット結果の上位32ビットをデスティネーションレジスタに格納します。これどうやってするの?
Here is the link to the ARM documentationSMLAWy命令の下位32ビットを格納する方法は?
SMLAWy
命令を使用して、下位32ビットをデスティネーションレジスタに格納します。しかし、ドキュメントによれば、SMLAWy
命令は、48ビット結果の上位32ビットをデスティネーションレジスタに格納します。これどうやってするの?
Here is the link to the ARM documentationSMLAWy命令の下位32ビットを格納する方法は?
あり何をしたいん単一の命令はありませんが、neatestソリューションは、おそらくあなたが行うことができますので、一時レジスタに関連する16ビットのオペランドを抽出すなわち、sxth
とmla
の組み合わせになりますプレーン32×32が乗算され、下位32ビットが累算されます。
これは1つの解決策ですが、操作全体を実行するのに必要な命令数が増えます。 'MLA'命令を使用する代わりに他の方法がありますか? –
パックドハーフワードオペランドから32x16乗算を実装し、_lower_32ビットを累積する命令がないため、no。乗算結果の最下位部分を返す唯一の演算は 'mul'と' mla'であり、32x32演算です。しかし、他の理由で16ビットデータを展開する必要があるアルゴリズムで_else_がある場合は、それを乗算にも利用できるように並べ替えてみる価値があります。 – Notlikethat