rendered paste body#define DIV_CR (*(vuint16*)(0x04000280))
#define DIV_NUMERATOR64 (*(vint64*) (0x04000290))
#define DIV_NUMERATOR32 (*(vint32*) (0x04000290))
#define DIV_DENOMINATOR64 (*(vint64*) (0x04000298))
#define DIV_DENOMINATOR32 (*(vint32*) (0x04000298))
#define DIV_RESULT64 (*(vint64*) (0x040002A0))
#define DIV_RESULT32 (*(vint32*) (0x040002A0))
#define DIV_REMAINDER64 (*(vint64*) (0x040002A8))
#define DIV_REMAINDER32 (*(vint32*) (0x040002A8))
// Integer divide
// Takes a 32 bit numerator and 32 bit
// denominator and returns 32 bit result
static inline int32 mod32(int32 num, int32 den)
{
DIV_CR = DIV_32_32;
while(DIV_CR & DIV_BUSY);
DIV_NUMERATOR32 = num;
DIV_DENOMINATOR32 = den;
while(DIV_CR & DIV_BUSY);
return (DIV_REMAINDER32);
}