A.2.2 アセンブラ命令の埋め込み

CC-RLでは,次に示す形式において,Cソース・プログラム中にアセンブラ命令を記述できます。これは,関数そのものをアセンブラ命令列とみなして,呼び出し箇所にインライン展開します。

-

#pragma指令

#pragma inline_asm func
static int func(int a, int b) {
        /*アセンブラ命令*/
}

備考 1.

アセンブラ埋め込み使用時には,下記の点に注意してください。

-

#pragma inline_asmは,関数本体の定義の前に指定してください。

-

#pragma inline_asmで指定した関数に対しても外部定義を生成します。

-

CC-RLのアセンブリ言語は,#で始まるコメントを使用できますが,#コメントをアセンブラ埋め込みとして使用すると,CC-RLのプリプロセッサはC言語の前処理指令と解釈し,アセンブリ言語のコメントとみなしません。そこで,アセンブリ記述関数内では#コメントを使わないでください。

-

アセンブリ記述関数内にラベルを書くと,インライン展開の数だけ同一名のラベルが作られてしまいます。この場合は,アセンブリ記述のローカル・ラベルを使ってください。ローカル・ラベルはアセンブリ・ソースでは同一名ですが,アセンブラが自動的に別名に変換します。

備考 2.

アセンブラ命令の記述(#pragma inline_asm)」を参照してください。