summaryrefslogtreecommitdiff
path: root/asm/SDK/VF/pf_service.s
blob: 1b6e086d88655c24de0cb42617ff1bb4807323c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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