1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-29 03:34:07 +00:00

Matched fault.c (#389)

* Matched fault.c

* Removed unused asm
This commit is contained in:
Lucas Shaw 2020-09-14 10:57:17 -07:00 committed by GitHub
parent 4d9f83da1b
commit eba7a30d86
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 165 deletions

View file

@ -1,68 +0,0 @@
.rdata
glabel D_80146DD4
.asciz "\x1b[41;37mfault_AddressConverterAddClient: %08x は既にリスト中にある\n\x1b[m"
.balign 4
.text
glabel Fault_AddAddrConvClient
/* B4B558 800D43B8 3C0CFFFA */ lui $t4, (0xFFFA5A5A >> 16) # lui $t4, 0xfffa
/* B4B55C 800D43BC 03A06825 */ move $t5, $sp
/* B4B560 800D43C0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B4B564 800D43C4 358C5A5A */ ori $t4, (0xFFFA5A5A & 0xFFFF) # ori $t4, $t4, 0x5a5a
.L800D43C8:
/* B4B568 800D43C8 25ADFFF8 */ addiu $t5, $t5, -8
/* B4B56C 800D43CC ADAC0000 */ sw $t4, ($t5)
/* B4B570 800D43D0 15BDFFFD */ bne $t5, $sp, .L800D43C8
/* B4B574 800D43D4 ADAC0004 */ sw $t4, 4($t5)
/* B4B578 800D43D8 AFBF0014 */ sw $ra, 0x14($sp)
/* B4B57C 800D43DC 00803825 */ move $a3, $a0
/* B4B580 800D43E0 AFA50024 */ sw $a1, 0x24($sp)
/* B4B584 800D43E4 AFA60028 */ sw $a2, 0x28($sp)
/* B4B588 800D43E8 AFA00018 */ sw $zero, 0x18($sp)
/* B4B58C 800D43EC 24040001 */ li $a0, 1
/* B4B590 800D43F0 0C0013D0 */ jal osSetIntMask
/* B4B594 800D43F4 AFA70020 */ sw $a3, 0x20($sp)
/* B4B598 800D43F8 3C058017 */ lui $a1, %hi(sFaultStructPtr) # $a1, 0x8017
/* B4B59C 800D43FC 24A5A800 */ addiu $a1, %lo(sFaultStructPtr) # addiu $a1, $a1, -0x5800
/* B4B5A0 800D4400 8FA70020 */ lw $a3, 0x20($sp)
/* B4B5A4 800D4404 00402025 */ move $a0, $v0
/* B4B5A8 800D4408 8CAE0000 */ lw $t6, ($a1)
/* B4B5AC 800D440C 240F0001 */ li $t7, 1
/* B4B5B0 800D4410 8FB80024 */ lw $t8, 0x24($sp)
/* B4B5B4 800D4414 8DC307DC */ lw $v1, 0x7dc($t6)
/* B4B5B8 800D4418 50600009 */ beql $v1, $zero, .L800D4440
/* B4B5BC 800D441C ACF80004 */ sw $t8, 4($a3)
.L800D4420:
/* B4B5C0 800D4420 54670004 */ bnel $v1, $a3, .L800D4434
/* B4B5C4 800D4424 8C630000 */ lw $v1, ($v1)
/* B4B5C8 800D4428 1000000C */ b .L800D445C
/* B4B5CC 800D442C AFAF0018 */ sw $t7, 0x18($sp)
/* B4B5D0 800D4430 8C630000 */ lw $v1, ($v1)
.L800D4434:
/* B4B5D4 800D4434 1460FFFA */ bnez $v1, .L800D4420
/* B4B5D8 800D4438 00000000 */ nop
/* B4B5DC 800D443C ACF80004 */ sw $t8, 4($a3)
.L800D4440:
/* B4B5E0 800D4440 8FB90028 */ lw $t9, 0x28($sp)
/* B4B5E4 800D4444 ACF90008 */ sw $t9, 8($a3)
/* B4B5E8 800D4448 8CA80000 */ lw $t0, ($a1)
/* B4B5EC 800D444C 8D0907DC */ lw $t1, 0x7dc($t0)
/* B4B5F0 800D4450 ACE90000 */ sw $t1, ($a3)
/* B4B5F4 800D4454 8CAA0000 */ lw $t2, ($a1)
/* B4B5F8 800D4458 AD4707DC */ sw $a3, 0x7dc($t2)
.L800D445C:
/* B4B5FC 800D445C 0C0013D0 */ jal osSetIntMask
/* B4B600 800D4460 AFA70020 */ sw $a3, 0x20($sp)
/* B4B604 800D4464 8FAB0018 */ lw $t3, 0x18($sp)
/* B4B608 800D4468 3C048014 */ lui $a0, %hi(D_80146DD4) # $a0, 0x8014
/* B4B60C 800D446C 8FA70020 */ lw $a3, 0x20($sp)
/* B4B610 800D4470 11600003 */ beqz $t3, .L800D4480
/* B4B614 800D4474 24846DD4 */ addiu $a0, %lo(D_80146DD4) # addiu $a0, $a0, 0x6dd4
/* B4B618 800D4478 0C00084C */ jal osSyncPrintf
/* B4B61C 800D447C 00E02825 */ move $a1, $a3
.L800D4480:
/* B4B620 800D4480 8FBF0014 */ lw $ra, 0x14($sp)
/* B4B624 800D4484 27BD0020 */ addiu $sp, $sp, 0x20
/* B4B628 800D4488 03E00008 */ jr $ra
/* B4B62C 800D448C 00000000 */ nop

View file

@ -1,71 +0,0 @@
.rdata
glabel D_80146D64
.asciz "\x1b[41;37mfault_AddClient: %08x は既にリスト中にある\n\x1b[m"
.balign 4
.text
glabel Fault_AddClient
/* B4B37C 800D41DC 3C0DFFFA */ lui $t5, (0xFFFA5A5A >> 16) # lui $t5, 0xfffa
/* B4B380 800D41E0 03A07025 */ move $t6, $sp
/* B4B384 800D41E4 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B4B388 800D41E8 35AD5A5A */ ori $t5, (0xFFFA5A5A & 0xFFFF) # ori $t5, $t5, 0x5a5a
.L800D41EC:
/* B4B38C 800D41EC 25CEFFF8 */ addiu $t6, $t6, -8
/* B4B390 800D41F0 ADCD0000 */ sw $t5, ($t6)
/* B4B394 800D41F4 15DDFFFD */ bne $t6, $sp, .L800D41EC
/* B4B398 800D41F8 ADCD0004 */ sw $t5, 4($t6)
/* B4B39C 800D41FC AFB00018 */ sw $s0, 0x18($sp)
/* B4B3A0 800D4200 00808025 */ move $s0, $a0
/* B4B3A4 800D4204 AFBF001C */ sw $ra, 0x1c($sp)
/* B4B3A8 800D4208 AFA5002C */ sw $a1, 0x2c($sp)
/* B4B3AC 800D420C AFA60030 */ sw $a2, 0x30($sp)
/* B4B3B0 800D4210 AFA70034 */ sw $a3, 0x34($sp)
/* B4B3B4 800D4214 AFA00020 */ sw $zero, 0x20($sp)
/* B4B3B8 800D4218 0C0013D0 */ jal osSetIntMask
/* B4B3BC 800D421C 24040001 */ li $a0, 1
/* B4B3C0 800D4220 3C058017 */ lui $a1, %hi(sFaultStructPtr) # $a1, 0x8017
/* B4B3C4 800D4224 24A5A800 */ addiu $a1, %lo(sFaultStructPtr) # addiu $a1, $a1, -0x5800
/* B4B3C8 800D4228 00402025 */ move $a0, $v0
/* B4B3CC 800D422C 8CAE0000 */ lw $t6, ($a1)
/* B4B3D0 800D4230 240F0001 */ li $t7, 1
/* B4B3D4 800D4234 8FB8002C */ lw $t8, 0x2c($sp)
/* B4B3D8 800D4238 8DC307D8 */ lw $v1, 0x7d8($t6)
/* B4B3DC 800D423C 50600009 */ beql $v1, $zero, .L800D4264
/* B4B3E0 800D4240 AE180004 */ sw $t8, 4($s0)
.L800D4244:
/* B4B3E4 800D4244 54700004 */ bnel $v1, $s0, .L800D4258
/* B4B3E8 800D4248 8C630000 */ lw $v1, ($v1)
/* B4B3EC 800D424C 1000000E */ b .L800D4288
/* B4B3F0 800D4250 AFAF0020 */ sw $t7, 0x20($sp)
/* B4B3F4 800D4254 8C630000 */ lw $v1, ($v1)
.L800D4258:
/* B4B3F8 800D4258 1460FFFA */ bnez $v1, .L800D4244
/* B4B3FC 800D425C 00000000 */ nop
/* B4B400 800D4260 AE180004 */ sw $t8, 4($s0)
.L800D4264:
/* B4B404 800D4264 8FB90030 */ lw $t9, 0x30($sp)
/* B4B408 800D4268 AE190008 */ sw $t9, 8($s0)
/* B4B40C 800D426C 8FA80034 */ lw $t0, 0x34($sp)
/* B4B410 800D4270 AE08000C */ sw $t0, 0xc($s0)
/* B4B414 800D4274 8CA90000 */ lw $t1, ($a1)
/* B4B418 800D4278 8D2A07D8 */ lw $t2, 0x7d8($t1)
/* B4B41C 800D427C AE0A0000 */ sw $t2, ($s0)
/* B4B420 800D4280 8CAB0000 */ lw $t3, ($a1)
/* B4B424 800D4284 AD7007D8 */ sw $s0, 0x7d8($t3)
.L800D4288:
/* B4B428 800D4288 0C0013D0 */ jal osSetIntMask
/* B4B42C 800D428C 00000000 */ nop
/* B4B430 800D4290 8FAC0020 */ lw $t4, 0x20($sp)
/* B4B434 800D4294 3C048014 */ lui $a0, %hi(D_80146D64) # $a0, 0x8014
/* B4B438 800D4298 24846D64 */ addiu $a0, %lo(D_80146D64) # addiu $a0, $a0, 0x6d64
/* B4B43C 800D429C 51800004 */ beql $t4, $zero, .L800D42B0
/* B4B440 800D42A0 8FBF001C */ lw $ra, 0x1c($sp)
/* B4B444 800D42A4 0C00084C */ jal osSyncPrintf
/* B4B448 800D42A8 02002825 */ move $a1, $s0
/* B4B44C 800D42AC 8FBF001C */ lw $ra, 0x1c($sp)
.L800D42B0:
/* B4B450 800D42B0 8FB00018 */ lw $s0, 0x18($sp)
/* B4B454 800D42B4 27BD0028 */ addiu $sp, $sp, 0x28
/* B4B458 800D42B8 03E00008 */ jr $ra
/* B4B45C 800D42BC 00000000 */ nop

View file

@ -110,22 +110,21 @@ u32 Fault_ProcessClient(u32 callback, u32 param0, u32 param1) {
return a.ret; return a.ret;
} }
#ifdef NON_MATCHING
// minor ordering differences
void Fault_AddClient(FaultClient* client, void* callback, void* param0, void* param1) { void Fault_AddClient(FaultClient* client, void* callback, void* param0, void* param1) {
OSIntMask mask; OSIntMask mask;
u32 alreadyExists = false; s32 alreadyExists = false;
FaultClient* iter;
mask = osSetIntMask(1); mask = osSetIntMask(1);
iter = sFaultStructPtr->clients; {
while (iter != NULL) { FaultClient* iter = sFaultStructPtr->clients;
if (iter == client) { while (iter != NULL) {
alreadyExists = true; if (iter == client) {
goto end; alreadyExists = true;
goto end;
}
iter = iter->next;
} }
iter = iter->next;
} }
client->callback = callback; client->callback = callback;
@ -140,9 +139,6 @@ end:
osSyncPrintf(VT_COL(RED, WHITE) "fault_AddClient: %08x は既にリスト中にある\n" VT_RST, client); osSyncPrintf(VT_COL(RED, WHITE) "fault_AddClient: %08x は既にリスト中にある\n" VT_RST, client);
} }
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_AddClient.s")
#endif
void Fault_RemoveClient(FaultClient* client) { void Fault_RemoveClient(FaultClient* client) {
FaultClient* iter; FaultClient* iter;
@ -182,22 +178,21 @@ void Fault_RemoveClient(FaultClient* client) {
} }
} }
#ifdef NON_MATCHING
// minor ordering differences
void Fault_AddAddrConvClient(FaultAddrConvClient* client, void* callback, void* param) { void Fault_AddAddrConvClient(FaultAddrConvClient* client, void* callback, void* param) {
FaultAddrConvClient* iter;
u32 alreadyExists = false;
OSIntMask mask; OSIntMask mask;
u32 alreadyExists = false;
mask = osSetIntMask(1); mask = osSetIntMask(1);
iter = sFaultStructPtr->addrConvClients; {
while (iter != NULL) { FaultAddrConvClient* iter = sFaultStructPtr->addrConvClients;
if (iter == client) { while (iter != NULL) {
alreadyExists = true; if (iter == client) {
goto end; alreadyExists = true;
goto end;
}
iter = iter->next;
} }
iter = iter->next;
} }
client->callback = callback; client->callback = callback;
@ -211,9 +206,6 @@ end:
osSyncPrintf(VT_COL(RED, WHITE) "fault_AddressConverterAddClient: %08x は既にリスト中にある\n" VT_RST, client); osSyncPrintf(VT_COL(RED, WHITE) "fault_AddressConverterAddClient: %08x は既にリスト中にある\n" VT_RST, client);
} }
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_AddAddrConvClient.s")
#endif
void Fault_RemoveAddrConvClient(FaultAddrConvClient* client) { void Fault_RemoveAddrConvClient(FaultAddrConvClient* client) {
FaultAddrConvClient* iter; FaultAddrConvClient* iter;