From eba7a30d8657809a80b58b588424f0ceab7f1739 Mon Sep 17 00:00:00 2001 From: Lucas Shaw <49287729+shawlucas@users.noreply.github.com> Date: Mon, 14 Sep 2020 10:57:17 -0700 Subject: [PATCH] Matched fault.c (#389) * Matched fault.c * Removed unused asm --- .../code/fault/Fault_AddAddrConvClient.s | 68 ------------------ .../code/fault/Fault_AddClient.s | 71 ------------------- src/code/fault.c | 44 +++++------- 3 files changed, 18 insertions(+), 165 deletions(-) delete mode 100644 asm/non_matchings/code/fault/Fault_AddAddrConvClient.s delete mode 100644 asm/non_matchings/code/fault/Fault_AddClient.s diff --git a/asm/non_matchings/code/fault/Fault_AddAddrConvClient.s b/asm/non_matchings/code/fault/Fault_AddAddrConvClient.s deleted file mode 100644 index c0cb23de61..0000000000 --- a/asm/non_matchings/code/fault/Fault_AddAddrConvClient.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/fault/Fault_AddClient.s b/asm/non_matchings/code/fault/Fault_AddClient.s deleted file mode 100644 index 613a6e8dd5..0000000000 --- a/asm/non_matchings/code/fault/Fault_AddClient.s +++ /dev/null @@ -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 - diff --git a/src/code/fault.c b/src/code/fault.c index e47441792d..38d61ef0fb 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -110,22 +110,21 @@ u32 Fault_ProcessClient(u32 callback, u32 param0, u32 param1) { return a.ret; } -#ifdef NON_MATCHING -// minor ordering differences void Fault_AddClient(FaultClient* client, void* callback, void* param0, void* param1) { OSIntMask mask; - u32 alreadyExists = false; - FaultClient* iter; + s32 alreadyExists = false; mask = osSetIntMask(1); - iter = sFaultStructPtr->clients; - while (iter != NULL) { - if (iter == client) { - alreadyExists = true; - goto end; + { + FaultClient* iter = sFaultStructPtr->clients; + while (iter != NULL) { + if (iter == client) { + alreadyExists = true; + goto end; + } + iter = iter->next; } - iter = iter->next; } client->callback = callback; @@ -140,9 +139,6 @@ end: 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) { 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) { - FaultAddrConvClient* iter; - u32 alreadyExists = false; OSIntMask mask; + u32 alreadyExists = false; mask = osSetIntMask(1); - iter = sFaultStructPtr->addrConvClients; - while (iter != NULL) { - if (iter == client) { - alreadyExists = true; - goto end; + { + FaultAddrConvClient* iter = sFaultStructPtr->addrConvClients; + while (iter != NULL) { + if (iter == client) { + alreadyExists = true; + goto end; + } + iter = iter->next; } - iter = iter->next; } client->callback = callback; @@ -211,9 +206,6 @@ end: 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) { FaultAddrConvClient* iter;