diff options
Diffstat (limited to 'arm9/lib/src/FX_cp.c')
-rw-r--r-- | arm9/lib/src/FX_cp.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/arm9/lib/src/FX_cp.c b/arm9/lib/src/FX_cp.c index 3b6e6c96..83967ff3 100644 --- a/arm9/lib/src/FX_cp.c +++ b/arm9/lib/src/FX_cp.c @@ -17,7 +17,7 @@ ARM_FUNC fx32 FX_Sqrt(fx32 x){ if (x > 0) { reg_CP_SQRTCNT = 0x1; - reg_CP_SQRT_PARAM = (fx64)x << 32; + reg_CP_SQRT_PARAM = (u64)((fx64)x << 32); return FX_GetSqrtResult(); } else @@ -27,13 +27,13 @@ ARM_FUNC fx32 FX_Sqrt(fx32 x){ } ARM_FUNC fx64c FX_GetDivResultFx64c(){ - while (reg_CP_DIVCNT & 0x8000); - return reg_CP_DIV_RESULT; + while (reg_CP_DIVCNT & 0x8000) {} + return (fx64c)reg_CP_DIV_RESULT; } ARM_FUNC fx32 FX_GetDivResult(){ - while (reg_CP_DIVCNT & 0x8000); - return (reg_CP_DIV_RESULT + (1 << (0x14 - 1))) >> 0x14; + while (reg_CP_DIVCNT & 0x8000) {} + return (fx32)((reg_CP_DIV_RESULT + (1 << (0x14 - 1))) >> 0x14); } ARM_FUNC void FX_InvAsync(fx32 x){ @@ -43,13 +43,13 @@ ARM_FUNC void FX_InvAsync(fx32 x){ } ARM_FUNC fx32 FX_GetSqrtResult(){ - while (reg_CP_SQRTCNT & 0x8000); - return (reg_CP_SQRT_RESULT + (1 << (0xA - 1))) >> 0xA; + while (reg_CP_SQRTCNT & 0x8000) {} + return (fx32)((reg_CP_SQRT_RESULT + (1 << (0xA - 1))) >> 0xA); } ARM_FUNC void FX_DivAsync(fx32 numerator, fx32 denominator){ reg_CP_DIVCNT = 0x1; - reg_CP_DIV_NUMER = (fx64)numerator << 32; + reg_CP_DIV_NUMER = (u64)((fx64)numerator << 32); reg_CP_DIV_DENOM = (u32)denominator; } @@ -57,14 +57,14 @@ ARM_FUNC fx32 FX_DivS32(fx32 numerator, fx32 denominator){ reg_CP_DIVCNT = 0x0; *(REGType32v *)®_CP_DIV_NUMER = (u32)numerator; //32bit write for some reason reg_CP_DIV_DENOM = (u32)denominator; - while (reg_CP_DIVCNT & 0x8000); - return *(REGType32v *)®_CP_DIV_RESULT; + while (reg_CP_DIVCNT & 0x8000) {} + return (fx32)(*(REGType32v *)®_CP_DIV_RESULT); } ARM_FUNC fx32 FX_ModS32(fx32 num, fx32 mod){ reg_CP_DIVCNT = 0x0; *(REGType32v *)®_CP_DIV_NUMER = (u32)num; //32bit write for some reason reg_CP_DIV_DENOM = (u32)mod; - while (reg_CP_DIVCNT & 0x8000); - return *(REGType32v *)®_CP_DIVREM_RESULT; + while (reg_CP_DIVCNT & 0x8000) {} + return (fx32)(*(REGType32v *)®_CP_DIVREM_RESULT); } |