のARMアセンブラで

M

Mahenrev

Guest
私が質問をいくつかの助けを必要とするいくつかの。

最適化]を重い1]がいる場合[O3のアセンブリ出力がさ最適化と、、なぜ変数は、すべてのレジスタ保持か?

2]は、変数のみましょう量大きくしてプログラムで我々が言う、と言う30の変数が
-ときは、最適化は、そのメモリに格納された
-ときは、最適化、そのレジスタに格納された

、フルれますあなたが知っているレジスタは?なぜメモリであっても1の変数が格納されて?

おかげで、事前には

 
からの読み取りの追加キャッシュがない(遅い)した/メモリにあることから維持変数は、内のレジスタを保証、そのプログラムの実行を可能¥な限り速く。

しかし、私は時間をすべて行うレジスタは実際の変数をすることができますどのように参照してくださいして30?
限り私がデザインを知っている標準のARM9、レジスタを持って16あり、それらのいくつかは、ご利用いただけます本当に通常は使用されて。

変数を増やす場合をお持ちして無料のレジスタは、実行プログラムをシャット終了するか、最大キャッシュヒット(/書き込みで最悪の場合、メモリの読み取り/)に書き込みます遅くかなりしますが。それは秒ですか1回、多くのの実行を取得ループ内で可能¥な変数として誰もがわずかに使用している。

もう一つのアプローチは、レジスタを1つに2/more変数をパックさに。
- 16ビットと同様に2場合がある変数を)変数秒=することができます入れることを〜に32ビットレジスタ(下位16ビット=最初の変数、より高い16ビット今、あなたは操作シフトで、または1つだけ2が取得するのいずれかのこれらの変数。無料でARMコアシフトされる操作は、...

<img src=¥"http://www.edaboard.com/images/smiles/icon_smile.gif¥" alt=¥"笑顔¥" border=¥"0¥" />
 
ウィルアセンブラはレジスタに変数を包装""しようとしてコードを最適化?

 

Welcome to EDABoard.com

Sponsor

Back
Top