summaryrefslogtreecommitdiff
path: root/asm/GameSpy/gpiUnique.s
blob: 7ced259cd5a06951a39a0d36799be66a27063329 (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
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global gpiProcessRegisterUniqueNick
gpiProcessRegisterUniqueNick:
/* 80347E24 00343A84  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80347E28 00343A88  7C 08 02 A6 */	mflr r0
/* 80347E2C 00343A8C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80347E30 00343A90  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80347E34 00343A94  7C BF 2B 78 */	mr r31, r5
/* 80347E38 00343A98  38 A0 00 01 */	li r5, 1
/* 80347E3C 00343A9C  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80347E40 00343AA0  7C 9E 23 78 */	mr r30, r4
/* 80347E44 00343AA4  7F E4 FB 78 */	mr r4, r31
/* 80347E48 00343AA8  93 A1 00 24 */	stw r29, 0x24(r1)
/* 80347E4C 00343AAC  7C 7D 1B 78 */	mr r29, r3
/* 80347E50 00343AB0  48 00 01 45 */	bl gpiCheckForError
/* 80347E54 00343AB4  2C 03 00 00 */	cmpwi r3, 0
/* 80347E58 00343AB8  41 82 00 0C */	beq lbl_80347E64
/* 80347E5C 00343ABC  38 60 00 04 */	li r3, 4
/* 80347E60 00343AC0  48 00 00 D4 */	b lbl_80347F34
lbl_80347E64:
/* 80347E64 00343AC4  7F E3 FB 78 */	mr r3, r31
/* 80347E68 00343AC8  38 8D 92 A0 */	addi r4, r13, lbl_8063E560-_SDA_BASE_
/* 80347E6C 00343ACC  38 A0 00 04 */	li r5, 4
/* 80347E70 00343AD0  4B E8 66 F9 */	bl strncmp
/* 80347E74 00343AD4  2C 03 00 00 */	cmpwi r3, 0
/* 80347E78 00343AD8  41 82 00 30 */	beq lbl_80347EA8
/* 80347E7C 00343ADC  3C A0 80 45 */	lis r5, lbl_8044B548@ha
/* 80347E80 00343AE0  7F A3 EB 78 */	mr r3, r29
/* 80347E84 00343AE4  38 A5 B5 48 */	addi r5, r5, lbl_8044B548@l
/* 80347E88 00343AE8  38 80 00 01 */	li r4, 1
/* 80347E8C 00343AEC  48 00 05 7D */	bl gpiSetError
/* 80347E90 00343AF0  7F A3 EB 78 */	mr r3, r29
/* 80347E94 00343AF4  38 80 00 03 */	li r4, 3
/* 80347E98 00343AF8  38 A0 00 01 */	li r5, 1
/* 80347E9C 00343AFC  4B FF 7D CD */	bl gpiCallErrorCallback
/* 80347EA0 00343B00  38 60 00 03 */	li r3, 3
/* 80347EA4 00343B04  48 00 00 90 */	b lbl_80347F34
lbl_80347EA8:
/* 80347EA8 00343B08  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 80347EAC 00343B0C  80 1E 00 10 */	lwz r0, 0x10(r30)
/* 80347EB0 00343B10  2C 03 00 00 */	cmpwi r3, 0
/* 80347EB4 00343B14  90 61 00 10 */	stw r3, 0x10(r1)
/* 80347EB8 00343B18  90 01 00 14 */	stw r0, 0x14(r1)
/* 80347EBC 00343B1C  41 82 00 68 */	beq lbl_80347F24
/* 80347EC0 00343B20  38 60 00 04 */	li r3, 4
/* 80347EC4 00343B24  4B FF 14 51 */	bl gsimalloc
/* 80347EC8 00343B28  2C 03 00 00 */	cmpwi r3, 0
/* 80347ECC 00343B2C  7C 65 1B 78 */	mr r5, r3
/* 80347ED0 00343B30  40 82 00 1C */	bne lbl_80347EEC
/* 80347ED4 00343B34  3C 80 80 45 */	lis r4, lbl_8044B578@ha
/* 80347ED8 00343B38  7F A3 EB 78 */	mr r3, r29
/* 80347EDC 00343B3C  38 84 B5 78 */	addi r4, r4, lbl_8044B578@l
/* 80347EE0 00343B40  48 00 05 79 */	bl gpiSetErrorString
/* 80347EE4 00343B44  38 60 00 01 */	li r3, 1
/* 80347EE8 00343B48  48 00 00 4C */	b lbl_80347F34
lbl_80347EEC:
/* 80347EEC 00343B4C  38 00 00 00 */	li r0, 0
/* 80347EF0 00343B50  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80347EF4 00343B54  90 03 00 00 */	stw r0, 0(r3)
/* 80347EF8 00343B58  7F A3 EB 78 */	mr r3, r29
/* 80347EFC 00343B5C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80347F00 00343B60  7F C6 F3 78 */	mr r6, r30
/* 80347F04 00343B64  90 81 00 08 */	stw r4, 8(r1)
/* 80347F08 00343B68  38 81 00 08 */	addi r4, r1, 8
/* 80347F0C 00343B6C  38 E0 00 00 */	li r7, 0
/* 80347F10 00343B70  90 01 00 0C */	stw r0, 0xc(r1)
/* 80347F14 00343B74  4B FF 7E 15 */	bl gpiAddCallback
/* 80347F18 00343B78  2C 03 00 00 */	cmpwi r3, 0
/* 80347F1C 00343B7C  41 82 00 08 */	beq lbl_80347F24
/* 80347F20 00343B80  48 00 00 14 */	b lbl_80347F34
lbl_80347F24:
/* 80347F24 00343B84  7F A3 EB 78 */	mr r3, r29
/* 80347F28 00343B88  7F C4 F3 78 */	mr r4, r30
/* 80347F2C 00343B8C  4B FF C1 31 */	bl gpiRemoveOperation
/* 80347F30 00343B90  38 60 00 00 */	li r3, 0
lbl_80347F34:
/* 80347F34 00343B94  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80347F38 00343B98  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80347F3C 00343B9C  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80347F40 00343BA0  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 80347F44 00343BA4  7C 08 03 A6 */	mtlr r0
/* 80347F48 00343BA8  38 21 00 30 */	addi r1, r1, 0x30
/* 80347F4C 00343BAC  4E 80 00 20 */	blr