From 41221f7df99815b503c05403315e7ed93be70c18 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 16 Jan 2023 20:47:31 +0200 Subject: [PATCH] Match PADReset --- Progress.md | 8 ++-- asm/dolphin/pad/Pad/PADReset.s | 71 ---------------------------------- libs/dolphin/pad/Pad.c | 12 +----- 3 files changed, 5 insertions(+), 86 deletions(-) delete mode 100644 asm/dolphin/pad/Pad/PADReset.s diff --git a/Progress.md b/Progress.md index 9a66995bc5b..371fe221a9b 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 22.057397% | 793304 | 3596544 +.text | 22.064960% | 793576 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 30.274541% | 1217240 | 4020672 +Total | 30.281306% | 1217512 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 30.274541% | 1217240 | 4020672 +main.dol | 30.281306% | 1217512 | 4020672 RELs | 33.041295% | 3799856 | 11500324 -Total | 32.324575% | 5017096 | 15520996 +Total | 32.326328% | 5017368 | 15520996 ## RELs diff --git a/asm/dolphin/pad/Pad/PADReset.s b/asm/dolphin/pad/Pad/PADReset.s deleted file mode 100644 index 7b9c1708d6f..00000000000 --- a/asm/dolphin/pad/Pad/PADReset.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_8034EB2C: -/* 8034EB2C 7C 08 02 A6 */ mflr r0 -/* 8034EB30 90 01 00 04 */ stw r0, 4(r1) -/* 8034EB34 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034EB38 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034EB3C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034EB40 7C 7E 1B 78 */ mr r30, r3 -/* 8034EB44 4B FE EB B1 */ bl OSDisableInterrupts -/* 8034EB48 80 8D 92 E0 */ lwz r4, PendingBits(r13) -/* 8034EB4C 39 00 00 00 */ li r8, 0 -/* 8034EB50 80 AD 92 D8 */ lwz r5, WaitingBits(r13) -/* 8034EB54 7C 7F 1B 78 */ mr r31, r3 -/* 8034EB58 80 0D 92 DC */ lwz r0, CheckingBits(r13) -/* 8034EB5C 7F DE 23 78 */ or r30, r30, r4 -/* 8034EB60 80 8D 92 D0 */ lwz r4, ResettingBits(r13) -/* 8034EB64 7C A5 03 78 */ or r5, r5, r0 -/* 8034EB68 80 0D 84 B0 */ lwz r0, Spec(r13) -/* 8034EB6C 7F DE 28 78 */ andc r30, r30, r5 -/* 8034EB70 80 CD 92 CC */ lwz r6, EnabledBits(r13) -/* 8034EB74 7C 85 F3 78 */ or r5, r4, r30 -/* 8034EB78 80 8D 92 E4 */ lwz r4, BarrelBits(r13) -/* 8034EB7C 7F C7 F0 F8 */ nor r7, r30, r30 -/* 8034EB80 90 AD 92 D0 */ stw r5, ResettingBits(r13) -/* 8034EB84 7C C5 38 38 */ and r5, r6, r7 -/* 8034EB88 7C 84 38 38 */ and r4, r4, r7 -/* 8034EB8C 80 ED 92 D0 */ lwz r7, ResettingBits(r13) -/* 8034EB90 28 00 00 04 */ cmplwi r0, 4 -/* 8034EB94 91 0D 92 E0 */ stw r8, PendingBits(r13) -/* 8034EB98 7C E3 30 38 */ and r3, r7, r6 -/* 8034EB9C 90 AD 92 CC */ stw r5, EnabledBits(r13) -/* 8034EBA0 90 8D 92 E4 */ stw r4, BarrelBits(r13) -/* 8034EBA4 40 82 00 10 */ bne lbl_8034EBB4 -/* 8034EBA8 80 0D 92 D4 */ lwz r0, RecalibrateBits(r13) -/* 8034EBAC 7C 00 F3 78 */ or r0, r0, r30 -/* 8034EBB0 90 0D 92 D4 */ stw r0, RecalibrateBits(r13) -lbl_8034EBB4: -/* 8034EBB4 4B FF 6D 49 */ bl SIDisablePolling -/* 8034EBB8 80 0D 84 A4 */ lwz r0, ResettingChan(r13) -/* 8034EBBC 2C 00 00 20 */ cmpwi r0, 0x20 -/* 8034EBC0 40 82 00 58 */ bne lbl_8034EC18 -/* 8034EBC4 80 AD 92 D0 */ lwz r5, ResettingBits(r13) -/* 8034EBC8 7C A0 00 34 */ cntlzw r0, r5 -/* 8034EBCC 90 0D 84 A4 */ stw r0, ResettingChan(r13) -/* 8034EBD0 80 8D 84 A4 */ lwz r4, ResettingChan(r13) -/* 8034EBD4 2C 04 00 20 */ cmpwi r4, 0x20 -/* 8034EBD8 41 82 00 40 */ beq lbl_8034EC18 -/* 8034EBDC 3C 00 80 00 */ lis r0, 0x8000 -/* 8034EBE0 7C 00 24 30 */ srw r0, r0, r4 -/* 8034EBE4 7C A0 00 78 */ andc r0, r5, r0 -/* 8034EBE8 1C 84 00 0C */ mulli r4, r4, 0xc -/* 8034EBEC 90 0D 92 D0 */ stw r0, ResettingBits(r13) -/* 8034EBF0 3C 60 80 45 */ lis r3, Origin@ha /* 0x8044CB80@ha */ -/* 8034EBF4 38 03 CB 80 */ addi r0, r3, Origin@l /* 0x8044CB80@l */ -/* 8034EBF8 7C 60 22 14 */ add r3, r0, r4 -/* 8034EBFC 38 80 00 00 */ li r4, 0 -/* 8034EC00 38 A0 00 0C */ li r5, 0xc -/* 8034EC04 4B CB 48 55 */ bl memset -/* 8034EC08 3C 80 80 35 */ lis r4, PADTypeAndStatusCallback@ha /* 0x8034E6C0@ha */ -/* 8034EC0C 80 6D 84 A4 */ lwz r3, ResettingChan(r13) -/* 8034EC10 38 84 E6 C0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 0x8034E6C0@l */ -/* 8034EC14 4B FF 75 41 */ bl SIGetTypeAsync -lbl_8034EC18: -/* 8034EC18 7F E3 FB 78 */ mr r3, r31 -/* 8034EC1C 4B FE EB 01 */ bl OSRestoreInterrupts -/* 8034EC20 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034EC24 38 60 00 01 */ li r3, 1 -/* 8034EC28 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034EC2C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034EC30 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034EC34 7C 08 03 A6 */ mtlr r0 -/* 8034EC38 4E 80 00 20 */ blr diff --git a/libs/dolphin/pad/Pad.c b/libs/dolphin/pad/Pad.c index 535eba9da4f..aee189ab33c 100644 --- a/libs/dolphin/pad/Pad.c +++ b/libs/dolphin/pad/Pad.c @@ -296,7 +296,6 @@ static asm void PADReceiveCheckCallback(s32 chan, u32 type) { #pragma pop /* 8034EB2C-8034EC3C 34946C 0110+00 2/2 1/1 0/0 .text PADReset */ -#ifdef NONMATCHING BOOL PADReset(u32 mask) { BOOL enabled; u32 diableBits; @@ -309,6 +308,7 @@ BOOL PADReset(u32 mask) { ResettingBits |= mask; diableBits = ResettingBits & EnabledBits; EnabledBits &= ~mask; + BarrelBits &= ~mask; if (Spec == PAD_SPEC_4) { RecalibrateBits |= mask; @@ -322,16 +322,6 @@ BOOL PADReset(u32 mask) { OSRestoreInterrupts(enabled); return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL PADReset(u32 mask) { - nofralloc -#include "asm/dolphin/pad/Pad/PADReset.s" -} -#pragma pop -#endif /* 8034EC3C-8034ED50 34957C 0114+00 1/1 1/1 0/0 .text PADRecalibrate */ #ifdef NONMATCHING