CP_IsDivBusy

構文

#include <nitro/cp.h>

s32 CP_IsDivBusy( void )

引数

なし。

返り値

除算器がビジーかどうかを返します。0 ならばレディ状態、非0 ならばビジー状態です。

説明

除算器がビジーかどうかを取得します。
除算レジスタへの書き込み後、一定サイクルの間ビジー状態になります。
除算の結果を取得する場合、ビジーが落ちた状態で読み出さなければなりません。
計算サイクルは以下のようになります。(計算サイクルは33.514MHzを基準としたサイクル数です。CPUサイクル換算は67.028MHzを基準としたサイクル数です。)

除算モード 計算 計算サイクル CPUサイクル換算
CP_DIV_32_32BIT_MODE 32ビット 割る 32ビット 18サイクル 36サイクル
CP_DIV_64_32BIT_MODE 64ビット 割る 32ビット 34サイクル 68サイクル
CP_DIV_64_64BIT_MODE 64ビット 割る 64ビット 34サイクル 68サイクル

内部動作

IOレジスタの、DIVCNT(0x4000280)を参照します。

参照

CP_SetDivImm*, CP_SetDiv*, CP_WaitDiv, CP_GetDivResult*, CP_GetDivRemainder*

履歴

2004/11/02 構文の関数型を u32→s32
2004/06/16 サイクル数の記述追加
2004/01/09 内容を追加
2003/12/01 初版