コンパイラによって生成される非境界整列型レジスタロード(LDR)命令

状況によっては、非境界整列型 LDR 命令がコンパイラによって意図的に生成される場合があります。特に、ハーフワードをロードするための専用の命令がアーキテクチャでサポートされている場合でも、このようにしてメモリからハーフワードをロードする場合があります。

例えば、__packed 構造体内の非境界整列型 short にアクセスする場合、コンパイラは必要なハーフワードをレジスタの上位半分にロードし、その後で下位半分にシフトします。この処理には 1 回のメモリアクセスしか必要とならないのに対し、LDRB 命令を使用して同じ処理を行う場合には、2 回のメモリアクセスに加え、2 バイトをマージする命令が必要となります。

Show/hide関連項目

参照

『アセンブラリファレンス』

『コンパイラリファレンス』

Copyright © 2010 ARM. All rights reserved.ARM DUI 0472BJ
Non-ConfidentialID011811