far jumpの出力を制御します。
[指定形式]
-Xcall_jumpオプションに従った命令を生成します。
[詳細説明]
- | Cソース・ファイルについて,far jump呼び出し関数一覧ファイルfile中で指定した関数への分岐に対して,32ビット長の分岐距離を持つ命令を生成します。 |
- | -Xcall_jump=22オプションを指定した際,分岐命令と分岐先関数との距離が22ビット長(±2Mバイト)を超えていて,リンク時にエラーとなる場合,本オプションを使用してコンパイルし直します。 |
- | 本オプションを複数指定した場合は,最後に指定したものが有効となります。 |
far_func(); /* デフォルトではjarl _far_func, lpを出力する */
|
備考 | far jump呼び出し関数一覧ファイルの書式に関する注意事項を以下に示します。 |
- | 1行に1個の関数名を記述します。
複数の関数名を記述した場合は,最初の名前のみを有効とします。 |
- | 記述する関数名は,C言語の関数名の先頭に“_”を付けた名前(アセンブリ・ソースでのラベル名)とします。
ただし,関数名の代わりに,以下の形式で指定することもできます。 |
|
|
{all_function}
|
すべての関数呼び出しを対象とします。
|
- | 関数だけでなく,ランタイム・ルーチンも指定可能です。 |
- | 関数名の前後に,空白やタブを挿入することが可能です。 |
- | 使用可能な文字は,ASCII文字のみです。
なお,行頭の空白を除いたあと,次の空白,または行末までの非空白文字列を関数名とし,空白から行末までは無視します。 |
- | 1行に記述可能な文字数は,1023文字までです(空白やタブも含みます)。 |
関数の指定例を以下に示します。
_func_led
_func_beep
_func_motor
:
_func_switch
|
[使用例]
- | func.fjp中で指定した関数への分岐に対して,jmp命令を使用したコードを生成します。 |
>ccrh -Xfar_jump=func.fjp -Xcommon=rh850 main.c
|