しかし,jarl命令は22ビット・ディスプレースメントであるため,プログラム配置によってはアドレス解決ができず,リンク時にエラーとなります。
上記エラーを解決する方法として,まずは-Xcall_jump=32を指定していただくことで,jarl32,およびjr32 命令を生成することができます。
-Xcall_jump=22オプションを指定されている場合は,C コンパイラの-Xfar_jump オプションで,関数呼び出しを ディスプレースメント幅に依存しない関数呼び出しにすることができます。
far jumpを指定した関数の呼び出しに対しては,jarl命令ではなく,jarl32,およびjr32命令が出力されます。
-Xfar_jumpオプションで指定するファイルには,1行に1関数を記述していきます。記述する名前は,C言語関数名の先頭に“_(アンダースコア)”を付けた名前になります。