7.18 インラインアセンブラのロード/ストア命令の展開

LDMSTMLDRD、および STRD の各命令は、同じ働きの ARM 命令に置き換わることがあります。

この場合、コンパイラにより命令の展開が行われる可能性があることを通知する警告メッセージが表示されます。この警告は、--diag_suppress を使用して抑止できます。
インラインアセンブリコードは、見込まれる命令の数や、指定した各命令の予想実行時間に左右されるように記述してはいけません。
LDRDSTRD など、一般的にオペランドレジスタの対に制約がある命令は、機能が同じで制約がない命令のシーケンスに置き換わります。ただし、これらの命令が、LDRD 命令および STRD 命令に再連結されることがあります。
LDM 命令と STM 命令はすべて、効果が同じ LDR 命令と STR 命令のシーケンスに展開されます。ただし、後で最適化するときに、個々の命令が LDM 命令または STM 命令に再連結されることがあります。
関連する概念
7.14 C および C++ コードのインラインアセンブラおよびレジスタアクセス
7.16 C および C++ コードのインラインアセンブラおよび命令の展開
関連する参考文書
8.60 --diag_suppress=tag[,tag,...]
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.