Proper fix for score.py and static functions. It will ignore them now

This commit is contained in:
Ryan Myers
2021-09-29 09:43:52 -04:00
parent 2b875b0304
commit c1026498d8
3 changed files with 15 additions and 16 deletions
+11 -10
View File
@@ -4,15 +4,8 @@
#include "types.h"
#include "macros.h"
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rshift.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rem.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_div.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_lshift.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_div.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_mul.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_divremi.s")
/*
#ifdef NON_MATCHING
//Thse need to be compiled with -mips3, and linked differently
unsigned long long __ull_rshift(unsigned long long a0, unsigned long long a1)
{
return a0 >> a1;
@@ -66,4 +59,12 @@ long long __ll_rshift(long long a0, long long a1)
{
return a0 >> a1;
}
*/
#else
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rshift.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rem.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_div.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_lshift.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_div.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_mul.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_divremi.s")
#endif
+2 -1
View File
@@ -16,7 +16,8 @@ static void *is_proutSyncPrintf(void *str, const char *buf, size_t n) {
/**
* Like sprintf, but simpler. It just hardcodes NULL for the dst,
* and calls a function that just hardcodes a fake pointer
* and calls a function that just hardcodes a fake pointer.
* Could still be an earlier version of osSyncPrintf
*/
void rmonPrintf(const char *format, ...) {
s32 written;
+2 -5
View File
@@ -30,7 +30,7 @@ for folder in ASM_FOLDERS:
BUILD_DIRECTORY = './build/us_1.0'
SRC_DIRECTORY = './src'
LIB_SRC_DIRECTORY = './lib/src'
FUNCTION_REGEX = r'(?:(\/[*][*!][*]*\n(?:[^/]*\n)+?\s*[*]\/\n)(?:\s*)*?)?(void|s64|s32|s16|s8|u64|u32|u16|u8|f32|f64)(?:\s|[*])*?([0-9A-Za-z_]+)\s*[(][^)]*[)]\s*{'
FUNCTION_REGEX = r'(?<!static\s)(?:(\/[*][*!][*]*\n(?:[^/]*\n)+?\s*[*]\/\n)(?:\s*)*?)?(void|s64|s32|s16|s8|u64|u32|u16|u8|f32|f64|int|char|short|long)\s(?:\s|[*])*?([0-9A-Za-z_]+)\s*[(][^)]*[)]\s*{'
GLOBAL_ASM_REGEX = r'GLOBAL_ASM[(]".*(?=\/)\/([^.]+).s"[)]'
WIP_REGEX = r'#if(?:.|\n)*?(GLOBAL_ASM[(][^)]*[)])(.|\n)*?#endif'
NON_MATCHING_REGEX = re.compile(r'^#ifdef[ ]+NON_MATCHING', re.MULTILINE)
@@ -92,10 +92,7 @@ class ScoreFile:
matches = re.finditer(FUNCTION_REGEX, self.text, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
groups = match.groups()
#TODO: This function is static, and thus doesn't appear in the map.
#Hardcoding it to be ignore works for now, but it's hacky
if groups[2] != "_Putfld":
self.functions.append(ScoreFileMatch(groups[0], groups[2]))
self.functions.append(ScoreFileMatch(groups[0], groups[2]))
matches = re.finditer(GLOBAL_ASM_REGEX, self.text, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
groups = match.groups()