mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-19 05:15:18 +00:00
parent
0c4f4ab9f6
commit
fd2d669fbf
2 changed files with 13 additions and 32 deletions
|
@ -9,6 +9,7 @@ f32 fabsf(f32 f);
|
||||||
f32 __floatundisf(u32 c);
|
f32 __floatundisf(u32 c);
|
||||||
f64 __floatundidf(u32 c);
|
f64 __floatundidf(u32 c);
|
||||||
f32 __powisf2(f32 a, s32 b);
|
f32 __powisf2(f32 a, s32 b);
|
||||||
|
unsigned long __udivdi3(unsigned long a, unsigned long b);
|
||||||
#else
|
#else
|
||||||
#pragma intrinsic(fabsf)
|
#pragma intrinsic(fabsf)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -91,9 +91,7 @@ f32 __powisf2(f32 a, s32 b) {
|
||||||
return recip ? 1 / r : r;
|
return recip ? 1 / r : r;
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 __umoddi3(u64 a, u64 b) {
|
unsigned long __umoddi3(unsigned long a, unsigned long b) {
|
||||||
u64 ret;
|
|
||||||
|
|
||||||
__asm__(".set push;"
|
__asm__(".set push;"
|
||||||
".set noat;"
|
".set noat;"
|
||||||
".set noreorder;"
|
".set noreorder;"
|
||||||
|
@ -112,16 +110,11 @@ u64 __umoddi3(u64 a, u64 b) {
|
||||||
"mfhi $v0;"
|
"mfhi $v0;"
|
||||||
"dsll32 $v1, $v0, 0;"
|
"dsll32 $v1, $v0, 0;"
|
||||||
"dsra32 $v1, $v1, 0;"
|
"dsra32 $v1, $v1, 0;"
|
||||||
"dsra32 %0, $v0, 0;"
|
"dsra32 $v0, $v0, 0;"
|
||||||
".set pop;"
|
".set pop;");
|
||||||
: "=r"(ret));
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 __udivdi3(u64 a, u64 b) {
|
unsigned long __udivdi3(unsigned long a, unsigned long b) {
|
||||||
u64 ret;
|
|
||||||
|
|
||||||
__asm__(".set push;"
|
__asm__(".set push;"
|
||||||
".set noat;"
|
".set noat;"
|
||||||
".set noreorder;"
|
".set noreorder;"
|
||||||
|
@ -140,16 +133,11 @@ u64 __udivdi3(u64 a, u64 b) {
|
||||||
"mflo $v0;"
|
"mflo $v0;"
|
||||||
"dsll32 $v1, $v0, 0;"
|
"dsll32 $v1, $v0, 0;"
|
||||||
"dsra32 $v1, $v1, 0;"
|
"dsra32 $v1, $v1, 0;"
|
||||||
" dsra32 %0, $v0, 0;"
|
" dsra32 $v0, $v0, 0;"
|
||||||
".set pop;"
|
".set pop;");
|
||||||
: "=r"(ret));
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s64 __moddi3(s64 a, s64 b) {
|
long __moddi3(long a, long b) {
|
||||||
s64 ret;
|
|
||||||
|
|
||||||
__asm__(".set push;"
|
__asm__(".set push;"
|
||||||
".set noat;"
|
".set noat;"
|
||||||
".set noreorder;"
|
".set noreorder;"
|
||||||
|
@ -168,16 +156,11 @@ s64 __moddi3(s64 a, s64 b) {
|
||||||
"mfhi $v0;"
|
"mfhi $v0;"
|
||||||
"dsll32 $v1, $v0, 0;"
|
"dsll32 $v1, $v0, 0;"
|
||||||
"dsra32 $v1, $v1, 0;"
|
"dsra32 $v1, $v1, 0;"
|
||||||
" dsra32 %0, $v0, 0;"
|
" dsra32 $v0, $v0, 0;"
|
||||||
".set pop;"
|
".set pop;");
|
||||||
: "=r"(ret));
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s64 __divdi3(s64 a, s64 b) {
|
long __divdi3(long a, long b) {
|
||||||
s64 ret;
|
|
||||||
|
|
||||||
__asm__(".set push;"
|
__asm__(".set push;"
|
||||||
".set noat;"
|
".set noat;"
|
||||||
".set noreorder;"
|
".set noreorder;"
|
||||||
|
@ -205,11 +188,8 @@ s64 __divdi3(s64 a, s64 b) {
|
||||||
"mflo $v0;"
|
"mflo $v0;"
|
||||||
"dsll32 $v1, $v0, 0;"
|
"dsll32 $v1, $v0, 0;"
|
||||||
"dsra32 $v1, $v1, 0;"
|
"dsra32 $v1, $v1, 0;"
|
||||||
" dsra32 %0, $v0, 0;"
|
" dsra32 $v0, $v0, 0;"
|
||||||
".set pop;"
|
".set pop;");
|
||||||
: "=r"(ret));
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue