174 lines
8.3 KiB
ArmAsm
174 lines
8.3 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
|
|
.global TRK_memcpy
|
|
TRK_memcpy:
|
|
/* 80015690 000114D0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80015694 000114D4 2C 05 00 00 */ cmpwi r5, 0x0
|
|
/* 80015698 000114D8 39 20 00 FF */ li r9, 0xff
|
|
/* 8001569C 000114DC 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 800156A0 000114E0 93 C1 00 08 */ stw r30, 0x8(r1)
|
|
/* 800156A4 000114E4 7C 7E 1B 78 */ mr r30, r3
|
|
/* 800156A8 000114E8 41 82 01 14 */ beq lbl_800157BC
|
|
/* 800156AC 000114EC 54 A0 F8 7F */ srwi. r0, r5, 1
|
|
/* 800156B0 000114F0 7C 09 03 A6 */ mtctr r0
|
|
/* 800156B4 000114F4 41 82 00 B0 */ beq lbl_80015764
|
|
.global lbl_800156B8
|
|
lbl_800156B8:
|
|
/* 800156B8 000114F8 57 CC 00 3A */ clrrwi r12, r30, 2
|
|
/* 800156BC 000114FC 54 8B 00 3A */ clrrwi r11, r4, 2
|
|
/* 800156C0 00011500 7C 0C F0 50 */ subf r0, r12, r30
|
|
/* 800156C4 00011504 80 EB 00 00 */ lwz r7, 0x0(r11)
|
|
/* 800156C8 00011508 21 40 00 03 */ subfic r10, r0, 0x3
|
|
/* 800156CC 0001150C 7C CB 20 50 */ subf r6, r11, r4
|
|
/* 800156D0 00011510 20 06 00 03 */ subfic r0, r6, 0x3
|
|
/* 800156D4 00011514 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 800156D8 00011518 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 800156DC 0001151C 55 5F 18 38 */ slwi r31, r10, 3
|
|
/* 800156E0 00011520 7C E0 04 30 */ srw r0, r7, r0
|
|
/* 800156E4 00011524 54 8B 00 3A */ clrrwi r11, r4, 2
|
|
/* 800156E8 00011528 54 00 06 3E */ clrlwi r0, r0, 24
|
|
/* 800156EC 0001152C 81 0C 00 00 */ lwz r8, 0x0(r12)
|
|
/* 800156F0 00011530 7D 2A F8 30 */ slw r10, r9, r31
|
|
/* 800156F4 00011534 7C CB 20 50 */ subf r6, r11, r4
|
|
/* 800156F8 00011538 7C 00 F8 30 */ slw r0, r0, r31
|
|
/* 800156FC 0001153C 3B DE 00 01 */ addi r30, r30, 0x1
|
|
/* 80015700 00011540 7D 07 50 78 */ andc r7, r8, r10
|
|
/* 80015704 00011544 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 80015708 00011548 7D 40 00 38 */ and r0, r10, r0
|
|
/* 8001570C 0001154C 7C E0 03 78 */ or r0, r7, r0
|
|
/* 80015710 00011550 90 0C 00 00 */ stw r0, 0x0(r12)
|
|
/* 80015714 00011554 57 CC 00 3A */ clrrwi r12, r30, 2
|
|
/* 80015718 00011558 7C 0C F0 50 */ subf r0, r12, r30
|
|
/* 8001571C 0001155C 80 EB 00 00 */ lwz r7, 0x0(r11)
|
|
/* 80015720 00011560 21 40 00 03 */ subfic r10, r0, 0x3
|
|
/* 80015724 00011564 81 0C 00 00 */ lwz r8, 0x0(r12)
|
|
/* 80015728 00011568 20 06 00 03 */ subfic r0, r6, 0x3
|
|
/* 8001572C 0001156C 3B DE 00 01 */ addi r30, r30, 0x1
|
|
/* 80015730 00011570 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 80015734 00011574 55 5F 18 38 */ slwi r31, r10, 3
|
|
/* 80015738 00011578 7C E0 04 30 */ srw r0, r7, r0
|
|
/* 8001573C 0001157C 54 00 06 3E */ clrlwi r0, r0, 24
|
|
/* 80015740 00011580 7D 2A F8 30 */ slw r10, r9, r31
|
|
/* 80015744 00011584 7C 00 F8 30 */ slw r0, r0, r31
|
|
/* 80015748 00011588 7D 07 50 78 */ andc r7, r8, r10
|
|
/* 8001574C 0001158C 7D 40 00 38 */ and r0, r10, r0
|
|
/* 80015750 00011590 7C E0 03 78 */ or r0, r7, r0
|
|
/* 80015754 00011594 90 0C 00 00 */ stw r0, 0x0(r12)
|
|
/* 80015758 00011598 42 00 FF 60 */ bdnz lbl_800156B8
|
|
/* 8001575C 0001159C 70 A5 00 01 */ andi. r5, r5, 0x1
|
|
/* 80015760 000115A0 41 82 00 5C */ beq lbl_800157BC
|
|
.global lbl_80015764
|
|
lbl_80015764:
|
|
/* 80015764 000115A4 7C A9 03 A6 */ mtctr r5
|
|
.global lbl_80015768
|
|
lbl_80015768:
|
|
/* 80015768 000115A8 57 CC 00 3A */ clrrwi r12, r30, 2
|
|
/* 8001576C 000115AC 54 8B 00 3A */ clrrwi r11, r4, 2
|
|
/* 80015770 000115B0 7C 0C F0 50 */ subf r0, r12, r30
|
|
/* 80015774 000115B4 80 EB 00 00 */ lwz r7, 0x0(r11)
|
|
/* 80015778 000115B8 21 40 00 03 */ subfic r10, r0, 0x3
|
|
/* 8001577C 000115BC 7C CB 20 50 */ subf r6, r11, r4
|
|
/* 80015780 000115C0 20 06 00 03 */ subfic r0, r6, 0x3
|
|
/* 80015784 000115C4 81 0C 00 00 */ lwz r8, 0x0(r12)
|
|
/* 80015788 000115C8 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 8001578C 000115CC 55 5F 18 38 */ slwi r31, r10, 3
|
|
/* 80015790 000115D0 7C E0 04 30 */ srw r0, r7, r0
|
|
/* 80015794 000115D4 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 80015798 000115D8 54 00 06 3E */ clrlwi r0, r0, 24
|
|
/* 8001579C 000115DC 7D 2A F8 30 */ slw r10, r9, r31
|
|
/* 800157A0 000115E0 7C 00 F8 30 */ slw r0, r0, r31
|
|
/* 800157A4 000115E4 3B DE 00 01 */ addi r30, r30, 0x1
|
|
/* 800157A8 000115E8 7D 07 50 78 */ andc r7, r8, r10
|
|
/* 800157AC 000115EC 7D 40 00 38 */ and r0, r10, r0
|
|
/* 800157B0 000115F0 7C E0 03 78 */ or r0, r7, r0
|
|
/* 800157B4 000115F4 90 0C 00 00 */ stw r0, 0x0(r12)
|
|
/* 800157B8 000115F8 42 00 FF B0 */ bdnz lbl_80015768
|
|
.global lbl_800157BC
|
|
lbl_800157BC:
|
|
/* 800157BC 000115FC 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 800157C0 00011600 83 C1 00 08 */ lwz r30, 0x8(r1)
|
|
/* 800157C4 00011604 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 800157C8 00011608 4E 80 00 20 */ blr
|
|
.global TRK_memset
|
|
TRK_memset:
|
|
/* 800157CC 0001160C 2C 05 00 00 */ cmpwi r5, 0x0
|
|
/* 800157D0 00011610 54 88 06 3E */ clrlwi r8, r4, 24
|
|
/* 800157D4 00011614 7C 67 1B 78 */ mr r7, r3
|
|
/* 800157D8 00011618 38 C0 00 FF */ li r6, 0xff
|
|
/* 800157DC 0001161C 4D 82 00 20 */ beqlr
|
|
/* 800157E0 00011620 54 A0 F0 BF */ srwi. r0, r5, 2
|
|
/* 800157E4 00011624 7C 09 03 A6 */ mtctr r0
|
|
/* 800157E8 00011628 41 82 00 D0 */ beq lbl_800158B8
|
|
.global lbl_800157EC
|
|
lbl_800157EC:
|
|
/* 800157EC 0001162C 54 EA 00 3A */ clrrwi r10, r7, 2
|
|
/* 800157F0 00011630 7C 0A 38 50 */ subf r0, r10, r7
|
|
/* 800157F4 00011634 80 8A 00 00 */ lwz r4, 0x0(r10)
|
|
/* 800157F8 00011638 20 00 00 03 */ subfic r0, r0, 0x3
|
|
/* 800157FC 0001163C 38 E7 00 01 */ addi r7, r7, 0x1
|
|
/* 80015800 00011640 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 80015804 00011644 7C C9 00 30 */ slw r9, r6, r0
|
|
/* 80015808 00011648 7D 00 00 30 */ slw r0, r8, r0
|
|
/* 8001580C 0001164C 7C 84 48 78 */ andc r4, r4, r9
|
|
/* 80015810 00011650 7D 20 00 38 */ and r0, r9, r0
|
|
/* 80015814 00011654 7C 80 03 78 */ or r0, r4, r0
|
|
/* 80015818 00011658 90 0A 00 00 */ stw r0, 0x0(r10)
|
|
/* 8001581C 0001165C 54 EA 00 3A */ clrrwi r10, r7, 2
|
|
/* 80015820 00011660 7C 0A 38 50 */ subf r0, r10, r7
|
|
/* 80015824 00011664 80 8A 00 00 */ lwz r4, 0x0(r10)
|
|
/* 80015828 00011668 20 00 00 03 */ subfic r0, r0, 0x3
|
|
/* 8001582C 0001166C 38 E7 00 01 */ addi r7, r7, 0x1
|
|
/* 80015830 00011670 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 80015834 00011674 7C C9 00 30 */ slw r9, r6, r0
|
|
/* 80015838 00011678 7D 00 00 30 */ slw r0, r8, r0
|
|
/* 8001583C 0001167C 7C 84 48 78 */ andc r4, r4, r9
|
|
/* 80015840 00011680 7D 20 00 38 */ and r0, r9, r0
|
|
/* 80015844 00011684 7C 80 03 78 */ or r0, r4, r0
|
|
/* 80015848 00011688 90 0A 00 00 */ stw r0, 0x0(r10)
|
|
/* 8001584C 0001168C 54 EA 00 3A */ clrrwi r10, r7, 2
|
|
/* 80015850 00011690 7C 0A 38 50 */ subf r0, r10, r7
|
|
/* 80015854 00011694 80 8A 00 00 */ lwz r4, 0x0(r10)
|
|
/* 80015858 00011698 20 00 00 03 */ subfic r0, r0, 0x3
|
|
/* 8001585C 0001169C 38 E7 00 01 */ addi r7, r7, 0x1
|
|
/* 80015860 000116A0 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 80015864 000116A4 7C C9 00 30 */ slw r9, r6, r0
|
|
/* 80015868 000116A8 7D 00 00 30 */ slw r0, r8, r0
|
|
/* 8001586C 000116AC 7C 84 48 78 */ andc r4, r4, r9
|
|
/* 80015870 000116B0 7D 20 00 38 */ and r0, r9, r0
|
|
/* 80015874 000116B4 7C 80 03 78 */ or r0, r4, r0
|
|
/* 80015878 000116B8 90 0A 00 00 */ stw r0, 0x0(r10)
|
|
/* 8001587C 000116BC 54 EA 00 3A */ clrrwi r10, r7, 2
|
|
/* 80015880 000116C0 7C 0A 38 50 */ subf r0, r10, r7
|
|
/* 80015884 000116C4 80 8A 00 00 */ lwz r4, 0x0(r10)
|
|
/* 80015888 000116C8 20 00 00 03 */ subfic r0, r0, 0x3
|
|
/* 8001588C 000116CC 38 E7 00 01 */ addi r7, r7, 0x1
|
|
/* 80015890 000116D0 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 80015894 000116D4 7C C9 00 30 */ slw r9, r6, r0
|
|
/* 80015898 000116D8 7D 00 00 30 */ slw r0, r8, r0
|
|
/* 8001589C 000116DC 7C 84 48 78 */ andc r4, r4, r9
|
|
/* 800158A0 000116E0 7D 20 00 38 */ and r0, r9, r0
|
|
/* 800158A4 000116E4 7C 80 03 78 */ or r0, r4, r0
|
|
/* 800158A8 000116E8 90 0A 00 00 */ stw r0, 0x0(r10)
|
|
/* 800158AC 000116EC 42 00 FF 40 */ bdnz lbl_800157EC
|
|
/* 800158B0 000116F0 70 A5 00 03 */ andi. r5, r5, 0x3
|
|
/* 800158B4 000116F4 4D 82 00 20 */ beqlr
|
|
.global lbl_800158B8
|
|
lbl_800158B8:
|
|
/* 800158B8 000116F8 7C A9 03 A6 */ mtctr r5
|
|
.global lbl_800158BC
|
|
lbl_800158BC:
|
|
/* 800158BC 000116FC 54 EA 00 3A */ clrrwi r10, r7, 2
|
|
/* 800158C0 00011700 7C 0A 38 50 */ subf r0, r10, r7
|
|
/* 800158C4 00011704 80 8A 00 00 */ lwz r4, 0x0(r10)
|
|
/* 800158C8 00011708 20 00 00 03 */ subfic r0, r0, 0x3
|
|
/* 800158CC 0001170C 38 E7 00 01 */ addi r7, r7, 0x1
|
|
/* 800158D0 00011710 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 800158D4 00011714 7C C9 00 30 */ slw r9, r6, r0
|
|
/* 800158D8 00011718 7D 00 00 30 */ slw r0, r8, r0
|
|
/* 800158DC 0001171C 7C 84 48 78 */ andc r4, r4, r9
|
|
/* 800158E0 00011720 7D 20 00 38 */ and r0, r9, r0
|
|
/* 800158E4 00011724 7C 80 03 78 */ or r0, r4, r0
|
|
/* 800158E8 00011728 90 0A 00 00 */ stw r0, 0x0(r10)
|
|
/* 800158EC 0001172C 42 00 FF D0 */ bdnz lbl_800158BC
|
|
/* 800158F0 00011730 4E 80 00 20 */ blr
|