CP_SetSqrt*

構文

#include <nitro/cp.h>

void CP_SetSqrt64( u64 param );
void CP_SetSqrt32( u32 param );

引数

param 平方根演算を行う値

返り値

なし。

説明

平方根演算のパラメータを設定します。
平方根演算モードの設定をまず行い、それからパラメータを格納します。

演算モードは以下の2つがあります。

平方根演算モード 計算 計算サイクル CPUサイクル換算
CP_SQRT_32BIT_MODE 32ビット値の平方根演算 13サイクル 26サイクル
CP_SQRT_64BIT_MODE 64ビット値の平方根演算 13サイクル 26サイクル


(注意)

平方根演算器は割り込み内で値が上書きされることがあります。パラメータを設定して平方根演算を行っている最中に割り込みが発生し平方根演算器が使用された場合に、元の演算結果が破壊されてしまいます。従って割り込み内で平方根演算器を使用する場合にはCP_SaveContext(), CP_RestoreContext()を用いて平方根演算器の状態を退避・復元する必要があります。
スレッド切り替え時には、平方根演算器の状態も自動的に保存・復元されます。


 平方根演算器の状態を復元する

intr_func( void )
{
 CPContext context;
 
 CP_SaveContext( &context );
 CP_SetSqrt32( 1000 );
 CP_WaitSqrt();
 result = CP_GetSqrtResult32();
 CP_RestoreContext( &context );
}

内部動作

IOレジスタの、SQRTCNT(0x40002B0)、SQRT_PARAM(0x40002B8)に値を格納します。

参照

CP_SetSqrtImm*, CP_IsSqrtBusy, CP_WaitSqrt, CP_GetSqrtResult*,CP_SaveContext, CP_RestoreContext

履歴

2005/03/08 用語統一 [割込み] → [割り込み]
2004/05/06 状態復元についての説明を追加
2004/01/09 内容を追加
2003/12/01 初版