3.10 組み込み関数

CA78K0Rでは#pragma指令により組み込み関数が有効となっていましたが,CC-RLでは組み込み関数が常に使用できます。CA78K0Rの組み込み関数に対応するCC-RLの組み込み関数が存在する場合,CcnvCA78K0RはCソース中の#pragma指令を削除し,組み込み関数の呼び出し箇所を変更します。

 

-

#pragma指令がない場合は,組み込み関数が有効でないと判断し変換しません。

-

CC-RLではサポートしていない組み込み関数は,#pragma指令を削除し,メッセージを出力します。組み込み関数の呼び出し箇所は変換しません。

-

CA78K0Rの組み込み関数macuw, macswに対応するCC-RLの組み込み関数__macui, __macsiは,引数の順番が異なります。変換時に引数の順番も並べ替えます。

 

表 3.4

組み込み関数の変換

CA78K0R組み込み関数

変換後

備考

#pragma DI

DI

削除します

__DI

 

#pragma EI

EI

削除します

__EI

 

#pragma HALT

HALT

削除します

__halt

 

#pragma STOP

STOP

削除します

__stop

 

#pragma BRK

BRK

削除します

__brk

 

#pragma NOP

NOP

削除します

__nop

 

#pragma rot

rolb

rorb

rolw

rorw

削除します

__rolb

__rorb

__rolw

__rorw

 

#pragma mul

mulu

muluw

mulsw

削除します

__mulu

__mului

__mulsi

 

#pragma div

divuw

moduw

削除します

__divui

__remui

 

#pragma mac

macuw ( x, y, z )

macsw ( x, y, z )

削除します

__macui( y, z, x )

__macsi( y, z, x )

引数の順番も並び替えます。

#pragma bcd

adbcdb, sbbcdb,

adbcdbe, sbbcdbe,

adbcdw, sbbcdw,

adbcdwe, sbbcdwe,

bcdtob, btobcde,

bcdtow, wtobcd,

btobcd

削除します

いずれも変換しません

CC-RLではサポートしていません。

#pragma opc

__OPC

削除します

変換しません

CC-RLではサポートしていません。