tp/asm/dolphin/os/OSLink/Link.s

210 lines
8.3 KiB
ArmAsm

lbl_8033E230:
/* 8033E230 7C 08 02 A6 */ mflr r0
/* 8033E234 90 01 00 04 */ stw r0, 4(r1)
/* 8033E238 38 00 00 00 */ li r0, 0
/* 8033E23C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8033E240 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8033E244 3B E3 00 00 */ addi r31, r3, 0
/* 8033E248 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8033E24C 3B C5 00 00 */ addi r30, r5, 0
/* 8033E250 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8033E254 3B A4 00 00 */ addi r29, r4, 0
/* 8033E258 93 81 00 18 */ stw r28, 0x18(r1)
/* 8033E25C 98 03 00 33 */ stb r0, 0x33(r3)
/* 8033E260 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8033E264 28 00 00 03 */ cmplwi r0, 3
/* 8033E268 41 81 00 44 */ bgt lbl_8033E2AC
/* 8033E26C 28 00 00 02 */ cmplwi r0, 2
/* 8033E270 41 80 00 44 */ blt lbl_8033E2B4
/* 8033E274 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 8033E278 28 03 00 00 */ cmplwi r3, 0
/* 8033E27C 41 82 00 14 */ beq lbl_8033E290
/* 8033E280 7C 1F 1B 96 */ divwu r0, r31, r3
/* 8033E284 7C 00 19 D6 */ mullw r0, r0, r3
/* 8033E288 7C 00 F8 51 */ subf. r0, r0, r31
/* 8033E28C 40 82 00 20 */ bne lbl_8033E2AC
lbl_8033E290:
/* 8033E290 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 8033E294 28 03 00 00 */ cmplwi r3, 0
/* 8033E298 41 82 00 1C */ beq lbl_8033E2B4
/* 8033E29C 7C 1D 1B 96 */ divwu r0, r29, r3
/* 8033E2A0 7C 00 19 D6 */ mullw r0, r0, r3
/* 8033E2A4 7C 00 E8 51 */ subf. r0, r0, r29
/* 8033E2A8 41 82 00 0C */ beq lbl_8033E2B4
lbl_8033E2AC:
/* 8033E2AC 38 60 00 00 */ li r3, 0
/* 8033E2B0 48 00 02 40 */ b lbl_8033E4F0
lbl_8033E2B4:
/* 8033E2B4 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C8@ha */
/* 8033E2B8 38 83 30 C8 */ addi r4, r3, 0x30C8 /* 0x800030C8@l */
/* 8033E2BC 84 A4 00 04 */ lwzu r5, 4(r4)
/* 8033E2C0 28 05 00 00 */ cmplwi r5, 0
/* 8033E2C4 40 82 00 0C */ bne lbl_8033E2D0
/* 8033E2C8 93 E3 30 C8 */ stw r31, 0x30c8(r3)
/* 8033E2CC 48 00 00 08 */ b lbl_8033E2D4
lbl_8033E2D0:
/* 8033E2D0 93 E5 00 04 */ stw r31, 4(r5)
lbl_8033E2D4:
/* 8033E2D4 90 BF 00 08 */ stw r5, 8(r31)
/* 8033E2D8 38 00 00 00 */ li r0, 0
/* 8033E2DC 90 1F 00 04 */ stw r0, 4(r31)
/* 8033E2E0 93 E4 00 00 */ stw r31, 0(r4)
/* 8033E2E4 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8033E2E8 7C 00 FA 14 */ add r0, r0, r31
/* 8033E2EC 90 1F 00 10 */ stw r0, 0x10(r31)
/* 8033E2F0 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 8033E2F4 7C 00 FA 14 */ add r0, r0, r31
/* 8033E2F8 90 1F 00 24 */ stw r0, 0x24(r31)
/* 8033E2FC 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8033E300 7C 00 FA 14 */ add r0, r0, r31
/* 8033E304 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8033E308 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 8033E30C 28 00 00 03 */ cmplwi r0, 3
/* 8033E310 41 80 00 10 */ blt lbl_8033E320
/* 8033E314 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 8033E318 7C 00 FA 14 */ add r0, r0, r31
/* 8033E31C 90 1F 00 48 */ stw r0, 0x48(r31)
lbl_8033E320:
/* 8033E320 38 A0 00 01 */ li r5, 1
/* 8033E324 38 60 00 08 */ li r3, 8
/* 8033E328 48 00 00 40 */ b lbl_8033E368
lbl_8033E32C:
/* 8033E32C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8033E330 7C 80 1A 14 */ add r4, r0, r3
/* 8033E334 80 04 00 00 */ lwz r0, 0(r4)
/* 8033E338 28 00 00 00 */ cmplwi r0, 0
/* 8033E33C 41 82 00 10 */ beq lbl_8033E34C
/* 8033E340 7C 00 FA 14 */ add r0, r0, r31
/* 8033E344 90 04 00 00 */ stw r0, 0(r4)
/* 8033E348 48 00 00 18 */ b lbl_8033E360
lbl_8033E34C:
/* 8033E34C 80 04 00 04 */ lwz r0, 4(r4)
/* 8033E350 28 00 00 00 */ cmplwi r0, 0
/* 8033E354 41 82 00 0C */ beq lbl_8033E360
/* 8033E358 98 BF 00 33 */ stb r5, 0x33(r31)
/* 8033E35C 93 A4 00 00 */ stw r29, 0(r4)
lbl_8033E360:
/* 8033E360 38 63 00 08 */ addi r3, r3, 8
/* 8033E364 38 A5 00 01 */ addi r5, r5, 1
lbl_8033E368:
/* 8033E368 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8033E36C 7C 05 00 40 */ cmplw r5, r0
/* 8033E370 41 80 FF BC */ blt lbl_8033E32C
/* 8033E374 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 8033E378 48 00 00 14 */ b lbl_8033E38C
lbl_8033E37C:
/* 8033E37C 80 04 00 04 */ lwz r0, 4(r4)
/* 8033E380 7C 00 FA 14 */ add r0, r0, r31
/* 8033E384 90 04 00 04 */ stw r0, 4(r4)
/* 8033E388 38 84 00 08 */ addi r4, r4, 8
lbl_8033E38C:
/* 8033E38C 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 8033E390 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 8033E394 7C 03 02 14 */ add r0, r3, r0
/* 8033E398 7C 04 00 40 */ cmplw r4, r0
/* 8033E39C 41 80 FF E0 */ blt lbl_8033E37C
/* 8033E3A0 88 1F 00 30 */ lbz r0, 0x30(r31)
/* 8033E3A4 28 00 00 00 */ cmplwi r0, 0
/* 8033E3A8 41 82 00 20 */ beq lbl_8033E3C8
/* 8033E3AC 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8033E3B0 54 00 18 38 */ slwi r0, r0, 3
/* 8033E3B4 80 9F 00 34 */ lwz r4, 0x34(r31)
/* 8033E3B8 7C 03 00 2E */ lwzx r0, r3, r0
/* 8033E3BC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8033E3C0 7C 04 02 14 */ add r0, r4, r0
/* 8033E3C4 90 1F 00 34 */ stw r0, 0x34(r31)
lbl_8033E3C8:
/* 8033E3C8 88 1F 00 31 */ lbz r0, 0x31(r31)
/* 8033E3CC 28 00 00 00 */ cmplwi r0, 0
/* 8033E3D0 41 82 00 20 */ beq lbl_8033E3F0
/* 8033E3D4 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8033E3D8 54 00 18 38 */ slwi r0, r0, 3
/* 8033E3DC 80 9F 00 38 */ lwz r4, 0x38(r31)
/* 8033E3E0 7C 03 00 2E */ lwzx r0, r3, r0
/* 8033E3E4 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8033E3E8 7C 04 02 14 */ add r0, r4, r0
/* 8033E3EC 90 1F 00 38 */ stw r0, 0x38(r31)
lbl_8033E3F0:
/* 8033E3F0 88 1F 00 32 */ lbz r0, 0x32(r31)
/* 8033E3F4 28 00 00 00 */ cmplwi r0, 0
/* 8033E3F8 41 82 00 20 */ beq lbl_8033E418
/* 8033E3FC 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8033E400 54 00 18 38 */ slwi r0, r0, 3
/* 8033E404 80 9F 00 3C */ lwz r4, 0x3c(r31)
/* 8033E408 7C 03 00 2E */ lwzx r0, r3, r0
/* 8033E40C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 8033E410 7C 04 02 14 */ add r0, r4, r0
/* 8033E414 90 1F 00 3C */ stw r0, 0x3c(r31)
lbl_8033E418:
/* 8033E418 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030D0@ha */
/* 8033E41C 80 63 30 D0 */ lwz r3, 0x30D0(r3) /* 0x800030D0@l */
/* 8033E420 28 03 00 00 */ cmplwi r3, 0
/* 8033E424 41 82 00 10 */ beq lbl_8033E434
/* 8033E428 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 8033E42C 7C 00 1A 14 */ add r0, r0, r3
/* 8033E430 90 1F 00 14 */ stw r0, 0x14(r31)
lbl_8033E434:
/* 8033E434 38 60 00 00 */ li r3, 0
/* 8033E438 38 9F 00 00 */ addi r4, r31, 0
/* 8033E43C 4B FF FB 39 */ bl Relocate
/* 8033E440 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C8@ha */
/* 8033E444 83 83 30 C8 */ lwz r28, 0x30C8(r3) /* 0x800030C8@l */
/* 8033E448 48 00 00 28 */ b lbl_8033E470
lbl_8033E44C:
/* 8033E44C 38 7F 00 00 */ addi r3, r31, 0
/* 8033E450 38 9C 00 00 */ addi r4, r28, 0
/* 8033E454 4B FF FB 21 */ bl Relocate
/* 8033E458 7C 1C F8 40 */ cmplw r28, r31
/* 8033E45C 41 82 00 10 */ beq lbl_8033E46C
/* 8033E460 38 7C 00 00 */ addi r3, r28, 0
/* 8033E464 38 9F 00 00 */ addi r4, r31, 0
/* 8033E468 4B FF FB 0D */ bl Relocate
lbl_8033E46C:
/* 8033E46C 83 9C 00 04 */ lwz r28, 4(r28)
lbl_8033E470:
/* 8033E470 28 1C 00 00 */ cmplwi r28, 0
/* 8033E474 40 82 FF D8 */ bne lbl_8033E44C
/* 8033E478 2C 1E 00 00 */ cmpwi r30, 0
/* 8033E47C 41 82 00 58 */ beq lbl_8033E4D4
/* 8033E480 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 8033E484 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 8033E488 38 A4 00 00 */ addi r5, r4, 0
/* 8033E48C 7C 64 02 14 */ add r3, r4, r0
/* 8033E490 38 03 00 07 */ addi r0, r3, 7
/* 8033E494 7C 05 00 50 */ subf r0, r5, r0
/* 8033E498 54 00 E8 FE */ srwi r0, r0, 3
/* 8033E49C 7C 05 18 40 */ cmplw r5, r3
/* 8033E4A0 7C 09 03 A6 */ mtctr r0
/* 8033E4A4 40 80 00 30 */ bge lbl_8033E4D4
lbl_8033E4A8:
/* 8033E4A8 80 65 00 00 */ lwz r3, 0(r5)
/* 8033E4AC 28 03 00 00 */ cmplwi r3, 0
/* 8033E4B0 41 82 00 10 */ beq lbl_8033E4C0
/* 8033E4B4 80 1F 00 00 */ lwz r0, 0(r31)
/* 8033E4B8 7C 03 00 40 */ cmplw r3, r0
/* 8033E4BC 40 82 00 10 */ bne lbl_8033E4CC
lbl_8033E4C0:
/* 8033E4C0 7C 04 28 50 */ subf r0, r4, r5
/* 8033E4C4 90 1F 00 2C */ stw r0, 0x2c(r31)
/* 8033E4C8 48 00 00 0C */ b lbl_8033E4D4
lbl_8033E4CC:
/* 8033E4CC 38 A5 00 08 */ addi r5, r5, 8
/* 8033E4D0 42 00 FF D8 */ bdnz lbl_8033E4A8
lbl_8033E4D4:
/* 8033E4D4 80 BF 00 20 */ lwz r5, 0x20(r31)
/* 8033E4D8 38 7D 00 00 */ addi r3, r29, 0
/* 8033E4DC 38 80 00 00 */ li r4, 0
/* 8033E4E0 4B CC 4F 79 */ bl memset
/* 8033E4E4 7F E3 FB 78 */ mr r3, r31
/* 8033E4E8 4B FF FA 79 */ bl OSNotifyLink
/* 8033E4EC 38 60 00 01 */ li r3, 1
lbl_8033E4F0:
/* 8033E4F0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8033E4F4 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8033E4F8 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8033E4FC 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8033E500 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8033E504 38 21 00 28 */ addi r1, r1, 0x28
/* 8033E508 7C 08 03 A6 */ mtlr r0
/* 8033E50C 4E 80 00 20 */ blr