tp/asm/dolphin/card/CARDRead/CARDReadAsync.s

92 lines
3.8 KiB
ArmAsm

lbl_80358788:
/* 80358788 7C 08 02 A6 */ mflr r0
/* 8035878C 90 01 00 04 */ stw r0, 4(r1)
/* 80358790 54 C0 05 FF */ clrlwi. r0, r6, 0x17
/* 80358794 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80358798 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8035879C 3B E5 00 00 */ addi r31, r5, 0
/* 803587A0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 803587A4 3B C4 00 00 */ addi r30, r4, 0
/* 803587A8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 803587AC 3B A3 00 00 */ addi r29, r3, 0
/* 803587B0 93 81 00 20 */ stw r28, 0x20(r1)
/* 803587B4 3B 87 00 00 */ addi r28, r7, 0
/* 803587B8 40 82 00 0C */ bne lbl_803587C4
/* 803587BC 57 E0 05 FF */ clrlwi. r0, r31, 0x17
/* 803587C0 41 82 00 0C */ beq lbl_803587CC
lbl_803587C4:
/* 803587C4 38 60 FF 80 */ li r3, -128
/* 803587C8 48 00 00 E4 */ b lbl_803588AC
lbl_803587CC:
/* 803587CC 38 7D 00 00 */ addi r3, r29, 0
/* 803587D0 38 9F 00 00 */ addi r4, r31, 0
/* 803587D4 38 A6 00 00 */ addi r5, r6, 0
/* 803587D8 38 C1 00 1C */ addi r6, r1, 0x1c
/* 803587DC 4B FF FC C5 */ bl __CARDSeek
/* 803587E0 2C 03 00 00 */ cmpwi r3, 0
/* 803587E4 40 80 00 08 */ bge lbl_803587EC
/* 803587E8 48 00 00 C4 */ b lbl_803588AC
lbl_803587EC:
/* 803587EC 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 803587F0 4B FF CF 8D */ bl __CARDGetDirBlock
/* 803587F4 80 1D 00 04 */ lwz r0, 4(r29)
/* 803587F8 54 00 30 32 */ slwi r0, r0, 6
/* 803587FC 7C 83 02 14 */ add r4, r3, r0
/* 80358800 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80358804 4B FF F6 A1 */ bl __CARDIsReadable
/* 80358808 7C 64 1B 79 */ or. r4, r3, r3
/* 8035880C 40 80 00 10 */ bge lbl_8035881C
/* 80358810 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80358814 4B FF B4 59 */ bl __CARDPutControlBlock
/* 80358818 48 00 00 94 */ b lbl_803588AC
lbl_8035881C:
/* 8035881C 38 7E 00 00 */ addi r3, r30, 0
/* 80358820 38 9F 00 00 */ addi r4, r31, 0
/* 80358824 4B FE 2D 5D */ bl DCInvalidateRange
/* 80358828 28 1C 00 00 */ cmplwi r28, 0
/* 8035882C 41 82 00 0C */ beq lbl_80358838
/* 80358830 7F 80 E3 78 */ mr r0, r28
/* 80358834 48 00 00 0C */ b lbl_80358840
lbl_80358838:
/* 80358838 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */
/* 8035883C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */
lbl_80358840:
/* 80358840 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80358844 90 03 00 D0 */ stw r0, 0xd0(r3)
/* 80358848 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 8035884C 80 9D 00 08 */ lwz r4, 8(r29)
/* 80358850 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 80358854 38 05 FF FF */ addi r0, r5, -1
/* 80358858 7C 88 00 38 */ and r8, r4, r0
/* 8035885C 7C 68 28 50 */ subf r3, r8, r5
/* 80358860 7C 1F 18 00 */ cmpw r31, r3
/* 80358864 40 80 00 08 */ bge lbl_8035886C
/* 80358868 7F E3 FB 78 */ mr r3, r31
lbl_8035886C:
/* 8035886C A0 1D 00 10 */ lhz r0, 0x10(r29)
/* 80358870 3C 80 80 36 */ lis r4, ReadCallback@ha /* 0x80358658@ha */
/* 80358874 3B E3 00 00 */ addi r31, r3, 0
/* 80358878 80 7D 00 00 */ lwz r3, 0(r29)
/* 8035887C 7C 05 01 D6 */ mullw r0, r5, r0
/* 80358880 38 E4 86 58 */ addi r7, r4, ReadCallback@l /* 0x80358658@l */
/* 80358884 38 BF 00 00 */ addi r5, r31, 0
/* 80358888 38 DE 00 00 */ addi r6, r30, 0
/* 8035888C 7C 88 02 14 */ add r4, r8, r0
/* 80358890 4B FF C9 D1 */ bl __CARDRead
/* 80358894 7C 7D 1B 79 */ or. r29, r3, r3
/* 80358898 40 80 00 10 */ bge lbl_803588A8
/* 8035889C 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 803588A0 7F A4 EB 78 */ mr r4, r29
/* 803588A4 4B FF B3 C9 */ bl __CARDPutControlBlock
lbl_803588A8:
/* 803588A8 7F A3 EB 78 */ mr r3, r29
lbl_803588AC:
/* 803588AC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803588B0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803588B4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803588B8 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 803588BC 83 81 00 20 */ lwz r28, 0x20(r1)
/* 803588C0 38 21 00 30 */ addi r1, r1, 0x30
/* 803588C4 7C 08 03 A6 */ mtlr r0
/* 803588C8 4E 80 00 20 */ blr