--pointer_alignment=num

このオプションを使用して、アプリケーションに必要な非境界整列ポインタのサポートを指定できます。

Show/hide構文

--pointer_alignment=num

num には以下のいずれかを指定できます。

1

ポインタを介したアクセスは、境界整列が 1 である(バイト境界で整列されるか境界整列されない)ものとして処理されます。

2

ポインタを介したアクセスは、境界整列が最大 2 である(ハーフワード境界で整列される)ものとして処理されます。

4

ポインタを介したアクセスは、境界整列が最大 4 である(ワード境界で整列される)ものとして処理されます。

8

ポインタでのアクセスは、通常の境界整列であるとして、つまり最大でもダブルワード境界で整列されるものとして処理されます。

num を指定せずに --pointer_alignment を使用すると、エラーになります。

Show/hide使用法

このオプションは、境界整列要件がないアーキテクチャ用に記述されたソースコードを移植する場合に利用できます。__packed 修飾子を使用することで、生成されるコードの質に大きな影響を及ぼすことなく、非境界整列データへのアクセスをより厳密に制御できます。

Show/hide制限

ポインタが境界整列されていないと、非境界整列アクセスがサポートされた CPU でも、コードサイズが大きくなることがあります。これは、非境整列アクセスのサポートによるメリットは、ロード命令とストア命令のサブセットにしかないからです。コンパイラは、非境界整列されたメモリオブジェクトに対して、ハードウェア浮動小数点のロード命令とストア命令など、多重ワード転送命令またはコプロセッサとメモリ間の転送命令直接的に使用することができません。

Note

  • v6 以前のアーキテクチャなど、非境界整列アクセスのハードウェアサポートがない CPU 用にコンパイルを行うと、コードサイズが著しく増大する合があります。

  • このオプションによって、メモリ内のオブジェクトの配置や、構造体のレイアウトとパディングが影響を受けることはありません。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711