diff options
Diffstat (limited to 'asm/SDK/VF/pf_service.s')
-rw-r--r-- | asm/SDK/VF/pf_service.s | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/asm/SDK/VF/pf_service.s b/asm/SDK/VF/pf_service.s new file mode 100644 index 0000000..1b6e086 --- /dev/null +++ b/asm/SDK/VF/pf_service.s @@ -0,0 +1,87 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global VFiPF_GET_LE_U16
+VFiPF_GET_LE_U16:
+/* 803051B0 00300E10 88 03 00 01 */ lbz r0, 1(r3)
+/* 803051B4 00300E14 88 63 00 00 */ lbz r3, 0(r3)
+/* 803051B8 00300E18 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
+/* 803051BC 00300E1C 4E 80 00 20 */ blr
+
+.global VFiPF_LE16_TO_U16_STR
+VFiPF_LE16_TO_U16_STR:
+/* 803051C0 00300E20 2C 04 00 00 */ cmpwi r4, 0
+/* 803051C4 00300E24 38 A0 00 00 */ li r5, 0
+/* 803051C8 00300E28 4D 82 00 20 */ beqlr
+/* 803051CC 00300E2C 38 C4 00 01 */ addi r6, r4, 1
+/* 803051D0 00300E30 38 E4 FF F0 */ addi r7, r4, -16
+/* 803051D4 00300E34 54 C0 F8 7E */ srwi r0, r6, 1
+/* 803051D8 00300E38 28 00 00 08 */ cmplwi r0, 8
+/* 803051DC 00300E3C 40 81 00 C4 */ ble lbl_803052A0
+/* 803051E0 00300E40 28 06 00 01 */ cmplwi r6, 1
+/* 803051E4 00300E44 38 00 00 00 */ li r0, 0
+/* 803051E8 00300E48 41 80 00 10 */ blt lbl_803051F8
+/* 803051EC 00300E4C 7C 04 30 40 */ cmplw r4, r6
+/* 803051F0 00300E50 41 81 00 08 */ bgt lbl_803051F8
+/* 803051F4 00300E54 38 00 00 01 */ li r0, 1
+lbl_803051F8:
+/* 803051F8 00300E58 2C 00 00 00 */ cmpwi r0, 0
+/* 803051FC 00300E5C 41 82 00 A4 */ beq lbl_803052A0
+/* 80305200 00300E60 38 07 00 0F */ addi r0, r7, 0xf
+/* 80305204 00300E64 54 00 E1 3E */ srwi r0, r0, 4
+/* 80305208 00300E68 7C 09 03 A6 */ mtctr r0
+/* 8030520C 00300E6C 28 07 00 00 */ cmplwi r7, 0
+/* 80305210 00300E70 40 81 00 90 */ ble lbl_803052A0
+lbl_80305214:
+/* 80305214 00300E74 7C E3 2A 14 */ add r7, r3, r5
+/* 80305218 00300E78 7C C3 28 AE */ lbzx r6, r3, r5
+/* 8030521C 00300E7C 88 07 00 01 */ lbz r0, 1(r7)
+/* 80305220 00300E80 7C 03 29 AE */ stbx r0, r3, r5
+/* 80305224 00300E84 38 A5 00 10 */ addi r5, r5, 0x10
+/* 80305228 00300E88 98 C7 00 01 */ stb r6, 1(r7)
+/* 8030522C 00300E8C 88 C7 00 02 */ lbz r6, 2(r7)
+/* 80305230 00300E90 88 07 00 03 */ lbz r0, 3(r7)
+/* 80305234 00300E94 98 07 00 02 */ stb r0, 2(r7)
+/* 80305238 00300E98 98 C7 00 03 */ stb r6, 3(r7)
+/* 8030523C 00300E9C 88 C7 00 04 */ lbz r6, 4(r7)
+/* 80305240 00300EA0 88 07 00 05 */ lbz r0, 5(r7)
+/* 80305244 00300EA4 98 07 00 04 */ stb r0, 4(r7)
+/* 80305248 00300EA8 98 C7 00 05 */ stb r6, 5(r7)
+/* 8030524C 00300EAC 88 C7 00 06 */ lbz r6, 6(r7)
+/* 80305250 00300EB0 88 07 00 07 */ lbz r0, 7(r7)
+/* 80305254 00300EB4 98 07 00 06 */ stb r0, 6(r7)
+/* 80305258 00300EB8 98 C7 00 07 */ stb r6, 7(r7)
+/* 8030525C 00300EBC 88 C7 00 08 */ lbz r6, 8(r7)
+/* 80305260 00300EC0 88 07 00 09 */ lbz r0, 9(r7)
+/* 80305264 00300EC4 98 07 00 08 */ stb r0, 8(r7)
+/* 80305268 00300EC8 98 C7 00 09 */ stb r6, 9(r7)
+/* 8030526C 00300ECC 88 C7 00 0A */ lbz r6, 0xa(r7)
+/* 80305270 00300ED0 88 07 00 0B */ lbz r0, 0xb(r7)
+/* 80305274 00300ED4 98 07 00 0A */ stb r0, 0xa(r7)
+/* 80305278 00300ED8 98 C7 00 0B */ stb r6, 0xb(r7)
+/* 8030527C 00300EDC 88 C7 00 0C */ lbz r6, 0xc(r7)
+/* 80305280 00300EE0 88 07 00 0D */ lbz r0, 0xd(r7)
+/* 80305284 00300EE4 98 07 00 0C */ stb r0, 0xc(r7)
+/* 80305288 00300EE8 98 C7 00 0D */ stb r6, 0xd(r7)
+/* 8030528C 00300EEC 88 C7 00 0E */ lbz r6, 0xe(r7)
+/* 80305290 00300EF0 88 07 00 0F */ lbz r0, 0xf(r7)
+/* 80305294 00300EF4 98 07 00 0E */ stb r0, 0xe(r7)
+/* 80305298 00300EF8 98 C7 00 0F */ stb r6, 0xf(r7)
+/* 8030529C 00300EFC 42 00 FF 78 */ bdnz lbl_80305214
+lbl_803052A0:
+/* 803052A0 00300F00 38 04 00 01 */ addi r0, r4, 1
+/* 803052A4 00300F04 7C 05 00 50 */ subf r0, r5, r0
+/* 803052A8 00300F08 54 00 F8 7E */ srwi r0, r0, 1
+/* 803052AC 00300F0C 7C 09 03 A6 */ mtctr r0
+/* 803052B0 00300F10 7C 05 20 40 */ cmplw r5, r4
+/* 803052B4 00300F14 4C 80 00 20 */ bgelr
+lbl_803052B8:
+/* 803052B8 00300F18 7C C3 2A 14 */ add r6, r3, r5
+/* 803052BC 00300F1C 7C 83 28 AE */ lbzx r4, r3, r5
+/* 803052C0 00300F20 88 06 00 01 */ lbz r0, 1(r6)
+/* 803052C4 00300F24 7C 03 29 AE */ stbx r0, r3, r5
+/* 803052C8 00300F28 38 A5 00 02 */ addi r5, r5, 2
+/* 803052CC 00300F2C 98 86 00 01 */ stb r4, 1(r6)
+/* 803052D0 00300F30 42 00 FF E8 */ bdnz lbl_803052B8
+/* 803052D4 00300F34 4E 80 00 20 */ blr
|