4.1.8 レジスタ・モード

CC-RHでは,3つのレジスタ・モードが提供されています。レジスタ・モードを効率的に指定することにより,割り込み処理時やタスク切り替え時に,一部のレジスタの退避/復帰処理が不要となり,処理速度が高められます。レジスタ・モードの指定は,CC-RHのレジスタ・モード指定オプション(-Xreg_mode)によって行います。この機能は,CC-RHが内部で使用するレジスタの本数を段階的に抑制し,次の効果が期待できます。

-

余ったレジスタをアプリケーション・プログラム(アセンブラ・ソース・プログラム)で自由に使うことができる。

-

退避,復帰で生じるオーバーヘッドが減少する。

注意

CC-RHによるレジスタ割り付けの対象となる変数の多いアプリケーション・プログラムでは,レジスタ・モードの指定によって,それまでレジスタに割り付けられていた変数がメモり・アクセスとなり,その分,処理速度が低下することがあります。

 

次表,および次図に,CC-RHのレジスタ・モードとして提供されている3つのモードを示します。

表 4.13

CC-RHが提供するレジスタ・モード

レジスタ・モード

作業用レジスタ

レジスタ変数用レジスタ

32レジスタ・モード(デフォルト)

r10〜r19

r20〜r29

22レジスタ・モード

r10〜r14

r25〜r29

commonレジスタ・モード

r10〜r14

r25〜r29

図 4.10

レジスタ・モードと使用可能レジスタ

コマンド・ラインにおける指定例

> ccrh -Xreg_mode=22 file.c ← 22レジスタ・モードでコンパイル