CP_SetDiv*

構文

#include <iris/cp.h>

void CP_SetDiv32_32( u32 numer, u32 denom );
void CP_SetDiv64_32( u64 numer, u32 denom );
void CP_SetDiv64_64( u64 numer, u64 denom );

引数

numer numerator。分数の分子という意味で、ここでは除算の被除数を表します。
denom denominator。分数の分母という意味で、ここでは除算の除数を表します。

返り値

なし。

説明

除算のパラメータを設定します。
除算モードの設定をまず行い、それから被除数、除数をそれぞれのレジスタに格納します。
被除数、除数の格納には、CP_SetDivImm* を使用しています。

除算モードは3つあり以下のものがあります。

除算モード 計算 結果
CP_DIV_32_32BIT_MODE 32ビット 割る 32ビット 商32ビット、余り32ビット
CP_DIV_64_32BIT_MODE 64ビット 割る 32ビット 商64ビット、余り32ビット
CP_DIV_64_64BIT_MODE 64ビット 割る 64ビット 商64ビット、余り64ビット

内部動作

IOレジスタの、DIVCNT(0x4000280)、DIV_NUMER(0x4000290)、DIV_DENOM(0x3000298) に値を格納します。

参照

CP_SetDivImm*, CP_IsDivBusy, CP_WaitDiv, CP_GetDivResult*, CP_GetDivRemainder*

履歴

2004/01/09 内容を書いた
2003/12/01 初版