#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 初版