12.80 --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 つの実行領域に最小のインターセクション分岐を越えるコードが含まれている場合は、 少なくとも 1 つの実行領域に最小のインターセクション分岐を越えるコードが含まれている場合は、--largeregions に自動的に切り替えられます。最小のインターセクション分岐は、領域内のコードとターゲットプロセッサによって異なります。

32Mb

ARM 命令のみを含む実行領域。

16Mb

実行領域に Thumb 命令が含まれており、Thumb-2 テクノロジがプロセッサでサポートされています。

4Mb

実行領域に Thumb 命令が含まれており、Thumb-2 テクノロジがプロセッサでサポートされていません。

関連する概念
3.16 ベニアの概要
3.17 ベニアの共有
3.18 ベニアのタイプ
3.19 位置非依存から絶対ベニアへの生成
関連する参考文書
12.6 --api、--no_api
12.135 --sort=algorithm
12.163 --veneer_inject_type=type
12.162 --veneerinject、--no_veneerinject
非機密扱い PDF file icon PDF 版 ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.