-Xfar_jump


far jumpの出力を制御します。

[指定形式]

-Xfar_jump=file

 

-

省略時解釈

-Xcall_jumpオプションに従った命令を生成します。

[詳細説明]

-

Cソース・ファイルについて,far jump呼び出し関数一覧ファイルfile中で指定した関数への分岐に対して,32ビット長の分岐距離を持つ命令を生成します。

-

fileの推奨拡張子は,“.fjp”です。

-

fileが存在しない場合は,エラーとなります。

-

fileを省略した場合は,エラーとなります。

-

-Xcall_jump=22オプションを指定した際,分岐命令と分岐先関数との距離が22ビット長(±2Mバイト)を超えていて,リンク時にエラーとなる場合,本オプションを使用してコンパイルし直します。

-

本オプションを複数指定した場合は,最後に指定したものが有効となります。

-

出力コード例を以下に示します。

-

Cソース

far_func();     /* デフォルトではjarl _far_func, lpを出力する */

 

-

出力アセンブリ・ソース

jarl32  _far_func, lp

 

備考

far jump呼び出し関数一覧ファイルの書式に関する注意事項を以下に示します。

-

1行に1個の関数名を記述します。
複数の関数名を記述した場合は,最初の名前のみを有効とします。

-

記述する関数名は,C言語の関数名の先頭に“_”を付けた名前(アセンブリ・ソースでのラベル名)とします。
ただし,関数名の代わりに,以下の形式で指定することもできます。

形式

意味

{all_function}

すべての関数呼び出しを対象とします。

 

-

Cソース・ファイル上から呼び出す関数だけでなく,演算用ランタイム関数も指定可能です。

演算用ランタイム関数を指定する場合は,関数名の先頭に“_”を追加せず,「7.4.13 演算用ランタイム関数」の表 7.15に記載されている関数名をそのまま指定してください。

-

関数名の前後に,空白やタブを挿入することが可能です。

-

使用可能な文字は,ASCII文字のみです。
なお,行頭の空白を除いたあと,次の空白,または行末までの非空白文字列を関数名とし,空白から行末までは無視します。

-

コメントを挿入することはできません。

-

1行に記述可能な文字数は,1023文字までです(空白やタブも含みます)。

 

関数の指定例を以下に示します。

_func_led
_func_beep
_func_motor
    :
_func_switch
_COM_div64

[使用例]

-

func.fjp中で指定した関数への分岐に対して,32ビット長の分岐距離を持つ命令を使用したコードを生成します。

>ccrh -Xfar_jump=func.fjp -Xcommon=rh850 main.c