tp/asm/dolphin/si/SIBios/CompleteTransfer.s

207 lines
8.7 KiB
ArmAsm

lbl_80344BFC:
/* 80344BFC 7C 08 02 A6 */ mflr r0
/* 80344C00 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006400@ha */
/* 80344C04 90 01 00 04 */ stw r0, 4(r1)
/* 80344C08 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80344C0C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80344C10 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80344C14 3B C3 64 00 */ addi r30, r3, 0x6400 /* 0xCC006400@l */
/* 80344C18 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80344C1C 3B BE 00 34 */ addi r29, r30, 0x34
/* 80344C20 93 81 00 10 */ stw r28, 0x10(r1)
/* 80344C24 80 03 64 34 */ lwz r0, 0x6434(r3)
/* 80344C28 83 83 64 38 */ lwz r28, 0x6438(r3)
/* 80344C2C 3C 60 80 3D */ lis r3, lit_1@ha /* 0x803D11B8@ha */
/* 80344C30 64 00 80 00 */ oris r0, r0, 0x8000
/* 80344C34 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80344C38 90 1E 00 34 */ stw r0, 0x34(r30)
/* 80344C3C 3B E3 11 B8 */ addi r31, r3, lit_1@l /* 0x803D11B8@l */
/* 80344C40 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 80344C44 2C 00 FF FF */ cmpwi r0, -1
/* 80344C48 41 82 02 74 */ beq lbl_80344EBC
/* 80344C4C 4B FF DA D1 */ bl __OSGetSystemTime
/* 80344C50 80 DF 00 44 */ lwz r6, 0x44(r31)
/* 80344C54 3C A0 80 45 */ lis r5, XferTime@ha /* 0x8044C770@ha */
/* 80344C58 38 05 C7 70 */ addi r0, r5, XferTime@l /* 0x8044C770@l */
/* 80344C5C 54 C5 18 38 */ slwi r5, r6, 3
/* 80344C60 7C A0 2A 14 */ add r5, r0, r5
/* 80344C64 90 85 00 04 */ stw r4, 4(r5)
/* 80344C68 38 DF 00 4C */ addi r6, r31, 0x4c
/* 80344C6C 38 80 00 00 */ li r4, 0
/* 80344C70 90 65 00 00 */ stw r3, 0(r5)
/* 80344C74 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 80344C78 80 BF 00 50 */ lwz r5, 0x50(r31)
/* 80344C7C 54 07 F0 BE */ srwi r7, r0, 2
/* 80344C80 28 07 00 00 */ cmplwi r7, 0
/* 80344C84 40 81 00 A0 */ ble lbl_80344D24
/* 80344C88 28 07 00 08 */ cmplwi r7, 8
/* 80344C8C 38 67 FF F8 */ addi r3, r7, -8
/* 80344C90 40 81 02 34 */ ble lbl_80344EC4
/* 80344C94 38 03 00 07 */ addi r0, r3, 7
/* 80344C98 54 00 E8 FE */ srwi r0, r0, 3
/* 80344C9C 28 03 00 00 */ cmplwi r3, 0
/* 80344CA0 7C 09 03 A6 */ mtctr r0
/* 80344CA4 40 81 02 20 */ ble lbl_80344EC4
lbl_80344CA8:
/* 80344CA8 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 80344CAC 38 84 00 08 */ addi r4, r4, 8
/* 80344CB0 90 05 00 00 */ stw r0, 0(r5)
/* 80344CB4 80 1E 00 84 */ lwz r0, 0x84(r30)
/* 80344CB8 90 05 00 04 */ stw r0, 4(r5)
/* 80344CBC 80 1E 00 88 */ lwz r0, 0x88(r30)
/* 80344CC0 90 05 00 08 */ stw r0, 8(r5)
/* 80344CC4 80 1E 00 8C */ lwz r0, 0x8c(r30)
/* 80344CC8 90 05 00 0C */ stw r0, 0xc(r5)
/* 80344CCC 80 1E 00 90 */ lwz r0, 0x90(r30)
/* 80344CD0 90 05 00 10 */ stw r0, 0x10(r5)
/* 80344CD4 80 1E 00 94 */ lwz r0, 0x94(r30)
/* 80344CD8 90 05 00 14 */ stw r0, 0x14(r5)
/* 80344CDC 80 1E 00 98 */ lwz r0, 0x98(r30)
/* 80344CE0 90 05 00 18 */ stw r0, 0x18(r5)
/* 80344CE4 80 1E 00 9C */ lwz r0, 0x9c(r30)
/* 80344CE8 3B DE 00 20 */ addi r30, r30, 0x20
/* 80344CEC 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80344CF0 38 A5 00 20 */ addi r5, r5, 0x20
/* 80344CF4 42 00 FF B4 */ bdnz lbl_80344CA8
/* 80344CF8 48 00 01 CC */ b lbl_80344EC4
lbl_80344CFC:
/* 80344CFC 7C 04 38 50 */ subf r0, r4, r7
/* 80344D00 7C 04 38 40 */ cmplw r4, r7
/* 80344D04 7C 09 03 A6 */ mtctr r0
/* 80344D08 40 80 00 1C */ bge lbl_80344D24
lbl_80344D0C:
/* 80344D0C 80 03 00 80 */ lwz r0, 0x80(r3)
/* 80344D10 38 63 00 04 */ addi r3, r3, 4
/* 80344D14 38 84 00 01 */ addi r4, r4, 1
/* 80344D18 90 05 00 00 */ stw r0, 0(r5)
/* 80344D1C 38 A5 00 04 */ addi r5, r5, 4
/* 80344D20 42 00 FF EC */ bdnz lbl_80344D0C
lbl_80344D24:
/* 80344D24 80 06 00 00 */ lwz r0, 0(r6)
/* 80344D28 54 03 07 BF */ clrlwi. r3, r0, 0x1e
/* 80344D2C 41 82 01 10 */ beq lbl_80344E3C
/* 80344D30 3C C0 CC 00 */ lis r6, 0xCC00 /* 0xCC006400@ha */
/* 80344D34 38 C6 64 00 */ addi r6, r6, 0x6400 /* 0xCC006400@l */
/* 80344D38 54 80 10 3A */ slwi r0, r4, 2
/* 80344D3C 7C 86 02 14 */ add r4, r6, r0
/* 80344D40 80 C4 00 80 */ lwz r6, 0x80(r4)
/* 80344D44 38 80 00 00 */ li r4, 0
/* 80344D48 40 81 00 F4 */ ble lbl_80344E3C
/* 80344D4C 28 03 00 08 */ cmplwi r3, 8
/* 80344D50 38 E3 FF F8 */ addi r7, r3, -8
/* 80344D54 40 81 00 BC */ ble lbl_80344E10
/* 80344D58 38 07 00 07 */ addi r0, r7, 7
/* 80344D5C 54 00 E8 FE */ srwi r0, r0, 3
/* 80344D60 28 07 00 00 */ cmplwi r7, 0
/* 80344D64 7C 09 03 A6 */ mtctr r0
/* 80344D68 40 81 00 A8 */ ble lbl_80344E10
lbl_80344D6C:
/* 80344D6C 20 04 00 03 */ subfic r0, r4, 3
/* 80344D70 54 07 18 38 */ slwi r7, r0, 3
/* 80344D74 38 04 00 01 */ addi r0, r4, 1
/* 80344D78 7C C7 3C 30 */ srw r7, r6, r7
/* 80344D7C 20 00 00 03 */ subfic r0, r0, 3
/* 80344D80 98 E5 00 00 */ stb r7, 0(r5)
/* 80344D84 54 00 18 38 */ slwi r0, r0, 3
/* 80344D88 38 E4 00 02 */ addi r7, r4, 2
/* 80344D8C 7C C0 04 30 */ srw r0, r6, r0
/* 80344D90 20 E7 00 03 */ subfic r7, r7, 3
/* 80344D94 98 05 00 01 */ stb r0, 1(r5)
/* 80344D98 54 E7 18 38 */ slwi r7, r7, 3
/* 80344D9C 7C CC 3C 30 */ srw r12, r6, r7
/* 80344DA0 7C E4 00 D0 */ neg r7, r4
/* 80344DA4 99 85 00 02 */ stb r12, 2(r5)
/* 80344DA8 54 E8 18 38 */ slwi r8, r7, 3
/* 80344DAC 38 E4 00 04 */ addi r7, r4, 4
/* 80344DB0 7C CB 44 30 */ srw r11, r6, r8
/* 80344DB4 20 E7 00 03 */ subfic r7, r7, 3
/* 80344DB8 99 65 00 03 */ stb r11, 3(r5)
/* 80344DBC 54 E8 18 38 */ slwi r8, r7, 3
/* 80344DC0 38 E4 00 05 */ addi r7, r4, 5
/* 80344DC4 7C CA 44 30 */ srw r10, r6, r8
/* 80344DC8 20 E7 00 03 */ subfic r7, r7, 3
/* 80344DCC 99 45 00 04 */ stb r10, 4(r5)
/* 80344DD0 54 E8 18 38 */ slwi r8, r7, 3
/* 80344DD4 7C C9 44 30 */ srw r9, r6, r8
/* 80344DD8 38 E4 00 06 */ addi r7, r4, 6
/* 80344DDC 99 25 00 05 */ stb r9, 5(r5)
/* 80344DE0 21 07 00 03 */ subfic r8, r7, 3
/* 80344DE4 38 E4 00 07 */ addi r7, r4, 7
/* 80344DE8 55 08 18 38 */ slwi r8, r8, 3
/* 80344DEC 7C C8 44 30 */ srw r8, r6, r8
/* 80344DF0 20 E7 00 03 */ subfic r7, r7, 3
/* 80344DF4 99 05 00 06 */ stb r8, 6(r5)
/* 80344DF8 54 E7 18 38 */ slwi r7, r7, 3
/* 80344DFC 7C C7 3C 30 */ srw r7, r6, r7
/* 80344E00 98 E5 00 07 */ stb r7, 7(r5)
/* 80344E04 38 A5 00 08 */ addi r5, r5, 8
/* 80344E08 38 84 00 08 */ addi r4, r4, 8
/* 80344E0C 42 00 FF 60 */ bdnz lbl_80344D6C
lbl_80344E10:
/* 80344E10 7C 04 18 50 */ subf r0, r4, r3
/* 80344E14 7C 04 18 40 */ cmplw r4, r3
/* 80344E18 7C 09 03 A6 */ mtctr r0
/* 80344E1C 40 80 00 20 */ bge lbl_80344E3C
lbl_80344E20:
/* 80344E20 20 04 00 03 */ subfic r0, r4, 3
/* 80344E24 54 00 18 38 */ slwi r0, r0, 3
/* 80344E28 7C C0 04 30 */ srw r0, r6, r0
/* 80344E2C 98 05 00 00 */ stb r0, 0(r5)
/* 80344E30 38 A5 00 01 */ addi r5, r5, 1
/* 80344E34 38 84 00 01 */ addi r4, r4, 1
/* 80344E38 42 00 FF E8 */ bdnz lbl_80344E20
lbl_80344E3C:
/* 80344E3C 80 1D 00 00 */ lwz r0, 0(r29)
/* 80344E40 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
/* 80344E44 41 82 00 4C */ beq lbl_80344E90
/* 80344E48 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 80344E4C 20 03 00 03 */ subfic r0, r3, 3
/* 80344E50 54 00 18 38 */ slwi r0, r0, 3
/* 80344E54 7F 9C 04 30 */ srw r28, r28, r0
/* 80344E58 57 9C 07 3E */ clrlwi r28, r28, 0x1c
/* 80344E5C 57 80 07 39 */ rlwinm. r0, r28, 0, 0x1c, 0x1c
/* 80344E60 41 82 00 20 */ beq lbl_80344E80
/* 80344E64 54 60 10 3A */ slwi r0, r3, 2
/* 80344E68 7C 7F 02 14 */ add r3, r31, r0
/* 80344E6C 84 03 00 58 */ lwzu r0, 0x58(r3)
/* 80344E70 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 80344E74 40 82 00 0C */ bne lbl_80344E80
/* 80344E78 38 00 00 08 */ li r0, 8
/* 80344E7C 90 03 00 00 */ stw r0, 0(r3)
lbl_80344E80:
/* 80344E80 28 1C 00 00 */ cmplwi r28, 0
/* 80344E84 40 82 00 30 */ bne lbl_80344EB4
/* 80344E88 3B 80 00 04 */ li r28, 4
/* 80344E8C 48 00 00 28 */ b lbl_80344EB4
lbl_80344E90:
/* 80344E90 4B FF D8 8D */ bl __OSGetSystemTime
/* 80344E94 80 DF 00 44 */ lwz r6, 0x44(r31)
/* 80344E98 3C A0 80 45 */ lis r5, TypeTime@ha /* 0x8044C750@ha */
/* 80344E9C 38 05 C7 50 */ addi r0, r5, TypeTime@l /* 0x8044C750@l */
/* 80344EA0 54 C5 18 38 */ slwi r5, r6, 3
/* 80344EA4 7C A0 2A 14 */ add r5, r0, r5
/* 80344EA8 90 85 00 04 */ stw r4, 4(r5)
/* 80344EAC 3B 80 00 00 */ li r28, 0
/* 80344EB0 90 65 00 00 */ stw r3, 0(r5)
lbl_80344EB4:
/* 80344EB4 38 00 FF FF */ li r0, -1
/* 80344EB8 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_80344EBC:
/* 80344EBC 7F 83 E3 78 */ mr r3, r28
/* 80344EC0 48 00 00 18 */ b lbl_80344ED8
lbl_80344EC4:
/* 80344EC4 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006400@ha */
/* 80344EC8 54 80 10 3A */ slwi r0, r4, 2
/* 80344ECC 38 63 64 00 */ addi r3, r3, 0x6400 /* 0xCC006400@l */
/* 80344ED0 7C 63 02 14 */ add r3, r3, r0
/* 80344ED4 4B FF FE 28 */ b lbl_80344CFC
lbl_80344ED8:
/* 80344ED8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80344EDC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80344EE0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80344EE4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80344EE8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80344EEC 38 21 00 20 */ addi r1, r1, 0x20
/* 80344EF0 7C 08 03 A6 */ mtlr r0
/* 80344EF4 4E 80 00 20 */ blr