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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global GXBeginDisplayList
GXBeginDisplayList:
/* 8028663C 0028229C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80286640 002822A0 7C 08 02 A6 */ mflr r0
/* 80286644 002822A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80286648 002822A8 39 61 00 20 */ addi r11, r1, 0x20
/* 8028664C 002822AC 4B F4 0A DD */ bl _savegpr_27
/* 80286650 002822B0 83 C2 A0 D0 */ lwz r30, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286654 002822B4 3F E0 80 51 */ lis r31, lbl_80516280@ha
/* 80286658 002822B8 3B FF 62 80 */ addi r31, r31, lbl_80516280@l
/* 8028665C 002822BC 7C 7B 1B 78 */ mr r27, r3
/* 80286660 002822C0 80 1E 05 FC */ lwz r0, 0x5fc(r30)
/* 80286664 002822C4 7C 9C 23 78 */ mr r28, r4
/* 80286668 002822C8 3B BF 00 00 */ addi r29, r31, 0
/* 8028666C 002822CC 2C 00 00 00 */ cmpwi r0, 0
/* 80286670 002822D0 41 82 00 08 */ beq lbl_80286678
/* 80286674 002822D4 4B FF A8 5D */ bl __GXSetDirtyState
lbl_80286678:
/* 80286678 002822D8 88 1E 05 F9 */ lbz r0, 0x5f9(r30)
/* 8028667C 002822DC 2C 00 00 00 */ cmpwi r0, 0
/* 80286680 002822E0 41 82 00 14 */ beq lbl_80286694
/* 80286684 002822E4 7F C4 F3 78 */ mr r4, r30
/* 80286688 002822E8 38 7F 00 80 */ addi r3, r31, 0x80
/* 8028668C 002822EC 38 A0 06 00 */ li r5, 0x600
/* 80286690 002822F0 4B D7 D9 71 */ bl memcpy
lbl_80286694:
/* 80286694 002822F4 7C 7B E2 14 */ add r3, r27, r28
/* 80286698 002822F8 38 80 00 00 */ li r4, 0
/* 8028669C 002822FC 38 A3 FF FC */ addi r5, r3, -4
/* 802866A0 00282300 93 7D 00 00 */ stw r27, 0(r29)
/* 802866A4 00282304 38 00 00 01 */ li r0, 1
/* 802866A8 00282308 38 7F 06 80 */ addi r3, r31, 0x680
/* 802866AC 0028230C 90 BD 00 04 */ stw r5, 4(r29)
/* 802866B0 00282310 93 9D 00 08 */ stw r28, 8(r29)
/* 802866B4 00282314 90 9D 00 1C */ stw r4, 0x1c(r29)
/* 802866B8 00282318 93 7D 00 14 */ stw r27, 0x14(r29)
/* 802866BC 0028231C 93 7D 00 18 */ stw r27, 0x18(r29)
/* 802866C0 00282320 98 1E 05 F8 */ stb r0, 0x5f8(r30)
/* 802866C4 00282324 4B FF 89 D1 */ bl GXGetCPUFifo
/* 802866C8 00282328 38 7F 00 00 */ addi r3, r31, 0
/* 802866CC 0028232C 4B FF 84 05 */ bl GXSetCPUFifo
/* 802866D0 00282330 4B FF A0 31 */ bl GXResetWriteGatherPipe
/* 802866D4 00282334 39 61 00 20 */ addi r11, r1, 0x20
/* 802866D8 00282338 4B F4 0A 9D */ bl _restgpr_27
/* 802866DC 0028233C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802866E0 00282340 7C 08 03 A6 */ mtlr r0
/* 802866E4 00282344 38 21 00 20 */ addi r1, r1, 0x20
/* 802866E8 00282348 4E 80 00 20 */ blr
.global GXEndDisplayList
GXEndDisplayList:
/* 802866EC 0028234C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802866F0 00282350 7C 08 02 A6 */ mflr r0
/* 802866F4 00282354 90 01 00 24 */ stw r0, 0x24(r1)
/* 802866F8 00282358 39 61 00 20 */ addi r11, r1, 0x20
/* 802866FC 0028235C 4B F4 0A 29 */ bl _savegpr_26
/* 80286700 00282360 3F C0 80 51 */ lis r30, lbl_80516280@ha
/* 80286704 00282364 3B DE 62 80 */ addi r30, r30, lbl_80516280@l
/* 80286708 00282368 38 7E 00 00 */ addi r3, r30, 0
/* 8028670C 0028236C 4B FF 89 89 */ bl GXGetCPUFifo
/* 80286710 00282370 38 7E 00 00 */ addi r3, r30, 0
/* 80286714 00282374 4B FF 8A 31 */ bl GXGetFifoWrap
/* 80286718 00282378 7C 7F 1B 78 */ mr r31, r3
/* 8028671C 0028237C 38 7E 06 80 */ addi r3, r30, 0x680
/* 80286720 00282380 4B FF 83 B1 */ bl GXSetCPUFifo
/* 80286724 00282384 83 A2 A0 D0 */ lwz r29, lbl_806426D0-_SDA2_BASE_(r2)
/* 80286728 00282388 88 1D 05 F9 */ lbz r0, 0x5f9(r29)
/* 8028672C 0028238C 2C 00 00 00 */ cmpwi r0, 0
/* 80286730 00282390 41 82 00 30 */ beq lbl_80286760
/* 80286734 00282394 4B FE 80 29 */ bl OSDisableInterrupts
/* 80286738 00282398 83 82 A0 D0 */ lwz r28, lbl_806426D0-_SDA2_BASE_(r2)
/* 8028673C 0028239C 7C 7B 1B 78 */ mr r27, r3
/* 80286740 002823A0 38 9E 00 80 */ addi r4, r30, 0x80
/* 80286744 002823A4 38 A0 06 00 */ li r5, 0x600
/* 80286748 002823A8 83 5C 00 08 */ lwz r26, 8(r28)
/* 8028674C 002823AC 7F 83 E3 78 */ mr r3, r28
/* 80286750 002823B0 4B D7 D8 B1 */ bl memcpy
/* 80286754 002823B4 93 5C 00 08 */ stw r26, 8(r28)
/* 80286758 002823B8 7F 63 DB 78 */ mr r3, r27
/* 8028675C 002823BC 4B FE 80 29 */ bl OSRestoreInterrupts
lbl_80286760:
/* 80286760 002823C0 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 80286764 002823C4 38 00 00 00 */ li r0, 0
/* 80286768 002823C8 98 1D 05 F8 */ stb r0, 0x5f8(r29)
/* 8028676C 002823CC 40 82 00 10 */ bne lbl_8028677C
/* 80286770 002823D0 38 7E 00 00 */ addi r3, r30, 0
/* 80286774 002823D4 4B FF 89 C9 */ bl GXGetFifoCount
/* 80286778 002823D8 48 00 00 08 */ b lbl_80286780
lbl_8028677C:
/* 8028677C 002823DC 38 60 00 00 */ li r3, 0
lbl_80286780:
/* 80286780 002823E0 39 61 00 20 */ addi r11, r1, 0x20
/* 80286784 002823E4 4B F4 09 ED */ bl _restgpr_26
/* 80286788 002823E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028678C 002823EC 7C 08 03 A6 */ mtlr r0
/* 80286790 002823F0 38 21 00 20 */ addi r1, r1, 0x20
/* 80286794 002823F4 4E 80 00 20 */ blr
.global GXCallDisplayList
GXCallDisplayList:
/* 80286798 002823F8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8028679C 002823FC 7C 08 02 A6 */ mflr r0
/* 802867A0 00282400 90 01 00 24 */ stw r0, 0x24(r1)
/* 802867A4 00282404 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802867A8 00282408 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
/* 802867AC 0028240C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802867B0 00282410 7C 9E 23 78 */ mr r30, r4
/* 802867B4 00282414 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802867B8 00282418 7C 7D 1B 78 */ mr r29, r3
/* 802867BC 0028241C 80 1F 05 FC */ lwz r0, 0x5fc(r31)
/* 802867C0 00282420 2C 00 00 00 */ cmpwi r0, 0
/* 802867C4 00282424 41 82 00 08 */ beq lbl_802867CC
/* 802867C8 00282428 4B FF A7 09 */ bl __GXSetDirtyState
lbl_802867CC:
/* 802867CC 0028242C 80 1F 00 00 */ lwz r0, 0(r31)
/* 802867D0 00282430 2C 00 00 00 */ cmpwi r0, 0
/* 802867D4 00282434 40 82 00 08 */ bne lbl_802867DC
/* 802867D8 00282438 4B FF AA BD */ bl __GXSendFlushPrim
lbl_802867DC:
/* 802867DC 0028243C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 802867E0 00282440 38 00 00 40 */ li r0, 0x40
/* 802867E4 00282444 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 802867E8 00282448 93 A3 80 00 */ stw r29, -0x8000(r3)
/* 802867EC 0028244C 93 C3 80 00 */ stw r30, -0x8000(r3)
/* 802867F0 00282450 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802867F4 00282454 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802867F8 00282458 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802867FC 0028245C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80286800 00282460 7C 08 03 A6 */ mtlr r0
/* 80286804 00282464 38 21 00 20 */ addi r1, r1, 0x20
/* 80286808 00282468 4E 80 00 20 */ blr
|