From c9879d951635d4f54a6830c1a00ea41bd64ae81e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 6 May 2023 23:15:43 +1000 Subject: [PATCH] Use inline sqrt.s instruction --- ld/libfiles.ntsc-final.inc | 1 - src/include/constants.h | 7 +++++++ src/lib/ultra/gu/sqrtf.s | 7 ------- 3 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 src/lib/ultra/gu/sqrtf.s diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index b17cccd22..fa10f15b4 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -157,7 +157,6 @@ build/ROMID/lib/ultra/os/thread.o (section); \ build/ROMID/lib/ultra/os/destroythread.o (section); \ build/ROMID/lib/ultra/gu/mtxutil.o (section); \ - build/ROMID/lib/ultra/gu/sqrtf.o (section); \ build/ROMID/lib/ultra/libc/string.o (section); \ build/ROMID/lib/ultra/libc/ldiv.o (section); \ build/ROMID/lib/ultra/io/siacs.o (section); \ diff --git a/src/include/constants.h b/src/include/constants.h index c60b1a1c2..337ac26d8 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -42,6 +42,13 @@ #define FRAMEBUFFER_SIZE (320 * 220 * sizeof(u16)) #define UNCACHED(x) ((void *)((u32)(x)|0xa0000000)) +inline float sqrtf(float value) +{ + float ret; + __asm__ ("sqrt.s %0, %1" : "=f"(ret) : "f"(value)); + return ret; +} + #define VALIDWEAPON() (g_Vars.currentplayer->gunctrl.weaponnum >= WEAPON_UNARMED && g_Vars.currentplayer->gunctrl.weaponnum <= WEAPON_COMBATBOOST) #define FUNCISSEC() (VALIDWEAPON() && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->gunctrl.weaponnum - 1) >> 3] & (1 << ((g_Vars.currentplayer->gunctrl.weaponnum - 1) & 7)))) diff --git a/src/lib/ultra/gu/sqrtf.s b/src/lib/ultra/gu/sqrtf.s deleted file mode 100644 index c4772c204..000000000 --- a/src/lib/ultra/gu/sqrtf.s +++ /dev/null @@ -1,7 +0,0 @@ -#include "macros.inc" - -.section .text - -glabel sqrtf - sqrt.s $f0, $f12 - jr $ra