12.79 --largeregions、--no_largeregions

大きい実行領域でセクションのソート順序を制御して、相互に呼び出すセクション間の距離を最小限にします。

使用法

実行領域に、分岐命令の範囲を超えるコードが含まれている場合は、大領域モードに切り替わります。このモードでは、各セクションの近似平均コール深度に従って昇順にソートされます。また、ベニアの数を最小限に抑えるために、コードセクション間に分散ベニアが配置される場合もあります。

大領域モードでは、入力に加えた変更が少しの場合でも、イメージのレイアウトが大幅に変わる可能性があります。
大領域モードを無効にし、語句順に戻すには、--no_largeregions を使用します。セクションの配置が予測でき、イメージの比較が予測しやすくなります。分岐がベニアに達する必要がある場合、リンカは --veneerinject で自動的に切り替わります。
大領域のサポートは、以下を可能にします。
  • 平均コール深度ソート、--sort=AvgCallDepth
  • API ソート、--api
  • ベニア挿入、--veneerinject
以下のコマンドラインは同等です。
armlink --largeregions --no_api --no_veneerinject --sort=Lexical
armlink --no_largeregions

デフォルト

デフォルトは、--no_largeregions です。少なくとも 1 つの実行領域に最小のインターセクション分岐を越えるコードが含まれている場合は、--largeregions に自動的に切り替えられます。最小のインターセクション分岐は、領域内のコードとターゲットプロセッサによって異なります。
32MB
ARM 命令のみを含む実行領域。
16MB
実行領域に Thumb 命令が含まれており、Thumb-2 テクノロジがプロセッサでサポートされています。
4MB
実行領域に Thumb 命令が含まれており、Thumb-2 テクノロジがプロセッサでサポートされていません。
関連する概念
3.6 リンカによって生成されるベニア
3.6.2 ベニアの共有
3.6.3 ベニアのタイプ
3.6.4 位置非依存から絶対ベニアへの生成
関連する参考文書
12.6 --api、--no_api
12.134 --sort=algorithm
12.162 --veneer_inject_type=type
12.161 --veneerinject、--no_veneerinject
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.