c: func_80001EA8 - pass struct by value is big ooof

This commit is contained in:
Mittenshugg
2020-08-09 21:13:28 -05:00
parent 18464c21c8
commit 210e2cb181
5 changed files with 26 additions and 40 deletions
@@ -1,31 +0,0 @@
glabel func_80001EA8
/* 002AA8 80001EA8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 002AAC 80001EAC AFA5001C */ sw $a1, 0x1c($sp)
/* 002AB0 80001EB0 8FA50028 */ lw $a1, 0x28($sp)
/* 002AB4 80001EB4 AFA40018 */ sw $a0, 0x18($sp)
/* 002AB8 80001EB8 308EFFFF */ andi $t6, $a0, 0xffff
/* 002ABC 80001EBC 01C02025 */ move $a0, $t6
/* 002AC0 80001EC0 AFBF0014 */ sw $ra, 0x14($sp)
/* 002AC4 80001EC4 AFA60020 */ sw $a2, 0x20($sp)
/* 002AC8 80001EC8 14A00003 */ bnez $a1, .L80001ED8
/* 002ACC 80001ECC AFA70024 */ sw $a3, 0x24($sp)
/* 002AD0 80001ED0 3C058011 */ lui $a1, %hi(D_80115F84) # $a1, 0x8011
/* 002AD4 80001ED4 24A55F84 */ addiu $a1, %lo(D_80115F84) # addiu $a1, $a1, 0x5f84
.L80001ED8:
/* 002AD8 80001ED8 0C000741 */ jal func_80001D04
/* 002ADC 80001EDC AFA50028 */ sw $a1, 0x28($sp)
/* 002AE0 80001EE0 8FA50028 */ lw $a1, 0x28($sp)
/* 002AE4 80001EE4 8FA60020 */ lw $a2, 0x20($sp)
/* 002AE8 80001EE8 8CA40000 */ lw $a0, ($a1)
/* 002AEC 80001EEC 8FA5001C */ lw $a1, 0x1c($sp)
/* 002AF0 80001EF0 10800005 */ beqz $a0, .L80001F08
/* 002AF4 80001EF4 8FBF0014 */ lw $ra, 0x14($sp)
/* 002AF8 80001EF8 8FA70024 */ lw $a3, 0x24($sp)
/* 002AFC 80001EFC 0C0026DF */ jal func_80009B7C
/* 002B00 80001F00 00000000 */ nop
/* 002B04 80001F04 8FBF0014 */ lw $ra, 0x14($sp)
.L80001F08:
/* 002B08 80001F08 27BD0018 */ addiu $sp, $sp, 0x18
/* 002B0C 80001F0C 03E00008 */ jr $ra
/* 002B10 80001F10 00000000 */ nop
@@ -68,7 +68,7 @@ glabel func_8000232C
/* 003034 80002434 00000000 */ nop
/* 003038 80002438 10800007 */ beqz $a0, .L80002458
/* 00303C 8000243C 00000000 */ nop
/* 003040 80002440 0C00054D */ jal func_80001534
/* 003040 80002440 0C00054D */ jal musicSetTempo
/* 003044 80002444 00000000 */ nop
/* 003048 80002448 3C028011 */ lui $v0, %hi(D_80115D1C) # $v0, 0x8011
/* 00304C 8000244C 8C425D1C */ lw $v0, %lo(D_80115D1C)($v0)
@@ -136,7 +136,7 @@ glabel func_8000232C
/* 00312C 8000252C 00000000 */ nop
/* 003130 80002530 10800005 */ beqz $a0, .L80002548
/* 003134 80002534 00000000 */ nop
/* 003138 80002538 0C0005F5 */ jal func_800017D4
/* 003138 80002538 0C0005F5 */ jal sfxSetTempo
/* 00313C 8000253C 00000000 */ nop
/* 003140 80002540 92630000 */ lbu $v1, ($s3)
/* 003144 80002544 00000000 */ nop
@@ -1,4 +1,4 @@
glabel func_80001534
glabel musicSetTempo
/* 002134 80001534 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 002138 80001538 AFBF0014 */ sw $ra, 0x14($sp)
/* 00213C 8000153C 1080001A */ beqz $a0, .L800015A8
@@ -1,4 +1,4 @@
glabel func_800017D4
glabel sfxSetTempo
/* 0023D4 800017D4 00803025 */ move $a2, $a0
/* 0023D8 800017D8 44863000 */ mtc1 $a2, $f6
/* 0023DC 800017DC 3C013F80 */ li $at, 0x3F800000 # 1.000000
+22 -5
View File
@@ -86,6 +86,7 @@ extern unk80115D48 D_80115D48[8];
extern s8 D_80115F78;
extern s8 D_80115F79;
extern s32 D_80115F7C;
extern u32 D_80115F84;
extern u32 D_80115F88;
#if 1
@@ -356,10 +357,10 @@ void func_80001440(u8 *arg0){
s16 func_800015B8(void);
void func_800014BC(f32 arg0) {
func_80001534((s32)((f32)(u32)(func_800015B8() & 0xFF) * arg0));
musicSetTempo((s32)((f32)(u32)(func_800015B8() & 0xFF) * arg0));
}
GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001534.s")
GLOBAL_ASM("asm/non_matchings/unknown_001050/musicSetTempo.s")
s16 func_800015B8(void) {
return D_80115D30;
@@ -380,7 +381,7 @@ void func_80001784(u8 a0){
}
}
GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800017D4.s")
GLOBAL_ASM("asm/non_matchings/unknown_001050/sfxSetTempo.s")
void func_80002570(ALCSPlayer* arg0);
@@ -486,9 +487,25 @@ u16 func_80001CB8(u16 arg0) {
}
return D_80115D18[arg0].unk6;
}
void func_80001D04(u16, void*);
GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001D04.s")
GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001EA8.s")
typedef struct unknown_struct_80001EA8_s{
u32 unk00;
u32 unk04;
u32 unk08;
}unknown_struct_80001EA8;
void func_80001EA8(u16 arg0, unknown_struct_80001EA8 arg1, u32* arg2){
if(arg2 == NULL){
arg2 = &D_80115F84;
}
func_80001D04(arg0, arg2);
if(*arg2){
func_80009B7C(*arg2, arg1.unk00, arg1.unk04, arg1.unk08);
}
}
u16 func_800020E8(void);