775 lines
37 KiB
ArmAsm
775 lines
37 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
|
|
.global GXCPInterruptHandler
|
|
GXCPInterruptHandler:
|
|
/* 80032DB0 0002EBF0 94 21 FD 20 */ stwu r1, -0x2e0(r1)
|
|
/* 80032DB4 0002EBF4 7C 08 02 A6 */ mflr r0
|
|
/* 80032DB8 0002EBF8 90 01 02 E4 */ stw r0, 0x2e4(r1)
|
|
/* 80032DBC 0002EBFC 93 E1 02 DC */ stw r31, 0x2dc(r1)
|
|
/* 80032DC0 0002EC00 83 E2 86 08 */ lwz r31, __GXData@sda21(r2)
|
|
/* 80032DC4 0002EC04 93 C1 02 D8 */ stw r30, 0x2d8(r1)
|
|
/* 80032DC8 0002EC08 7C 9E 23 78 */ mr r30, r4
|
|
/* 80032DCC 0002EC0C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80032DD0 0002EC10 A0 03 00 00 */ lhz r0, 0x0(r3)
|
|
/* 80032DD4 0002EC14 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 80032DD8 0002EC18 80 1F 00 08 */ lwz r0, 0x8(r31)
|
|
/* 80032DDC 0002EC1C 54 00 EF FF */ extrwi. r0, r0, 1, 28
|
|
/* 80032DE0 0002EC20 41 82 00 50 */ beq lbl_80032E30
|
|
/* 80032DE4 0002EC24 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80032DE8 0002EC28 54 00 FF FF */ extrwi. r0, r0, 1, 30
|
|
/* 80032DEC 0002EC2C 41 82 00 44 */ beq lbl_80032E30
|
|
/* 80032DF0 0002EC30 80 6D E5 EC */ lwz r3, __GXCurrentThread@sda21(r13)
|
|
/* 80032DF4 0002EC34 4B FF 25 ED */ bl OSResumeThread
|
|
/* 80032DF8 0002EC38 38 00 00 00 */ li r0, 0x0
|
|
/* 80032DFC 0002EC3C 90 0D E5 E8 */ stw r0, GXOverflowSuspendInProgress@sda21(r13)
|
|
/* 80032E00 0002EC40 80 62 86 08 */ lwz r3, __GXData@sda21(r2)
|
|
/* 80032E04 0002EC44 80 03 00 10 */ lwz r0, 0x10(r3)
|
|
/* 80032E08 0002EC48 60 00 00 03 */ ori r0, r0, 0x3
|
|
/* 80032E0C 0002EC4C 90 03 00 10 */ stw r0, 0x10(r3)
|
|
/* 80032E10 0002EC50 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80032E14 0002EC54 B0 03 00 04 */ sth r0, 0x4(r3)
|
|
/* 80032E18 0002EC58 80 1F 00 08 */ lwz r0, 0x8(r31)
|
|
/* 80032E1C 0002EC5C 60 00 00 04 */ ori r0, r0, 0x4
|
|
/* 80032E20 0002EC60 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 80032E24 0002EC64 90 1F 00 08 */ stw r0, 0x8(r31)
|
|
/* 80032E28 0002EC68 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80032E2C 0002EC6C B0 03 00 02 */ sth r0, 0x2(r3)
|
|
.global lbl_80032E30
|
|
lbl_80032E30:
|
|
/* 80032E30 0002EC70 80 1F 00 08 */ lwz r0, 0x8(r31)
|
|
/* 80032E34 0002EC74 54 00 F7 FF */ extrwi. r0, r0, 1, 29
|
|
/* 80032E38 0002EC78 41 82 00 60 */ beq lbl_80032E98
|
|
/* 80032E3C 0002EC7C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80032E40 0002EC80 54 00 07 FF */ clrlwi. r0, r0, 31
|
|
/* 80032E44 0002EC84 41 82 00 54 */ beq lbl_80032E98
|
|
/* 80032E48 0002EC88 80 6D E5 DC */ lwz r3, __GXOverflowCount@sda21(r13)
|
|
/* 80032E4C 0002EC8C 38 00 00 01 */ li r0, 0x1
|
|
/* 80032E50 0002EC90 80 A2 86 08 */ lwz r5, __GXData@sda21(r2)
|
|
/* 80032E54 0002EC94 38 63 00 01 */ addi r3, r3, 0x1
|
|
/* 80032E58 0002EC98 90 6D E5 DC */ stw r3, __GXOverflowCount@sda21(r13)
|
|
/* 80032E5C 0002EC9C 80 7F 00 08 */ lwz r3, 0x8(r31)
|
|
/* 80032E60 0002ECA0 54 64 07 B8 */ rlwinm r4, r3, 0, 30, 28
|
|
/* 80032E64 0002ECA4 60 84 00 08 */ ori r4, r4, 0x8
|
|
/* 80032E68 0002ECA8 90 9F 00 08 */ stw r4, 0x8(r31)
|
|
/* 80032E6C 0002ECAC 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80032E70 0002ECB0 B0 83 00 02 */ sth r4, 0x2(r3)
|
|
/* 80032E74 0002ECB4 80 65 00 10 */ lwz r3, 0x10(r5)
|
|
/* 80032E78 0002ECB8 60 63 00 01 */ ori r3, r3, 0x1
|
|
/* 80032E7C 0002ECBC 54 64 07 FA */ rlwinm r4, r3, 0, 31, 29
|
|
/* 80032E80 0002ECC0 90 85 00 10 */ stw r4, 0x10(r5)
|
|
/* 80032E84 0002ECC4 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80032E88 0002ECC8 B0 83 00 04 */ sth r4, 0x4(r3)
|
|
/* 80032E8C 0002ECCC 90 0D E5 E8 */ stw r0, GXOverflowSuspendInProgress@sda21(r13)
|
|
/* 80032E90 0002ECD0 80 6D E5 EC */ lwz r3, __GXCurrentThread@sda21(r13)
|
|
/* 80032E94 0002ECD4 4B FF 27 ED */ bl OSSuspendThread
|
|
.global lbl_80032E98
|
|
lbl_80032E98:
|
|
/* 80032E98 0002ECD8 80 7F 00 08 */ lwz r3, 0x8(r31)
|
|
/* 80032E9C 0002ECDC 54 60 DF FF */ extrwi. r0, r3, 1, 26
|
|
/* 80032EA0 0002ECE0 41 82 00 58 */ beq lbl_80032EF8
|
|
/* 80032EA4 0002ECE4 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80032EA8 0002ECE8 54 00 E7 FF */ extrwi. r0, r0, 1, 27
|
|
/* 80032EAC 0002ECEC 41 82 00 4C */ beq lbl_80032EF8
|
|
/* 80032EB0 0002ECF0 54 60 06 F2 */ rlwinm r0, r3, 0, 27, 25
|
|
/* 80032EB4 0002ECF4 90 1F 00 08 */ stw r0, 0x8(r31)
|
|
/* 80032EB8 0002ECF8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80032EBC 0002ECFC B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80032EC0 0002ED00 80 0D E5 E4 */ lwz r0, BreakPointCB@sda21(r13)
|
|
/* 80032EC4 0002ED04 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80032EC8 0002ED08 41 82 00 30 */ beq lbl_80032EF8
|
|
/* 80032ECC 0002ED0C 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80032ED0 0002ED10 4B FE A5 71 */ bl OSClearContext
|
|
/* 80032ED4 0002ED14 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80032ED8 0002ED18 4B FE A3 29 */ bl OSSetCurrentContext
|
|
/* 80032EDC 0002ED1C 81 8D E5 E4 */ lwz r12, BreakPointCB@sda21(r13)
|
|
/* 80032EE0 0002ED20 7D 89 03 A6 */ mtctr r12
|
|
/* 80032EE4 0002ED24 4E 80 04 21 */ bctrl
|
|
/* 80032EE8 0002ED28 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80032EEC 0002ED2C 4B FE A5 55 */ bl OSClearContext
|
|
/* 80032EF0 0002ED30 7F C3 F3 78 */ mr r3, r30
|
|
/* 80032EF4 0002ED34 4B FE A3 0D */ bl OSSetCurrentContext
|
|
.global lbl_80032EF8
|
|
lbl_80032EF8:
|
|
/* 80032EF8 0002ED38 80 01 02 E4 */ lwz r0, 0x2e4(r1)
|
|
/* 80032EFC 0002ED3C 83 E1 02 DC */ lwz r31, 0x2dc(r1)
|
|
/* 80032F00 0002ED40 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
|
|
/* 80032F04 0002ED44 7C 08 03 A6 */ mtlr r0
|
|
/* 80032F08 0002ED48 38 21 02 E0 */ addi r1, r1, 0x2e0
|
|
/* 80032F0C 0002ED4C 4E 80 00 20 */ blr
|
|
.global GXInitFifoBase
|
|
GXInitFifoBase:
|
|
/* 80032F10 0002ED50 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80032F14 0002ED54 7C 08 02 A6 */ mflr r0
|
|
/* 80032F18 0002ED58 7C E4 2A 14 */ add r7, r4, r5
|
|
/* 80032F1C 0002ED5C 38 C5 C0 00 */ addi r6, r5, -0x4000
|
|
/* 80032F20 0002ED60 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 80032F24 0002ED64 38 E7 FF FC */ addi r7, r7, -0x4
|
|
/* 80032F28 0002ED68 54 A0 F8 74 */ rlwinm r0, r5, 31, 1, 26
|
|
/* 80032F2C 0002ED6C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80032F30 0002ED70 3B E0 00 00 */ li r31, 0x0
|
|
/* 80032F34 0002ED74 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80032F38 0002ED78 7C 9E 23 78 */ mr r30, r4
|
|
/* 80032F3C 0002ED7C 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80032F40 0002ED80 7C 7D 1B 78 */ mr r29, r3
|
|
/* 80032F44 0002ED84 90 83 00 00 */ stw r4, 0x0(r3)
|
|
/* 80032F48 0002ED88 90 E3 00 04 */ stw r7, 0x4(r3)
|
|
/* 80032F4C 0002ED8C 90 A3 00 08 */ stw r5, 0x8(r3)
|
|
/* 80032F50 0002ED90 93 E3 00 1C */ stw r31, 0x1c(r3)
|
|
/* 80032F54 0002ED94 90 C3 00 0C */ stw r6, 0xc(r3)
|
|
/* 80032F58 0002ED98 90 03 00 10 */ stw r0, 0x10(r3)
|
|
/* 80032F5C 0002ED9C 4B FE E8 C5 */ bl OSDisableInterrupts
|
|
/* 80032F60 0002EDA0 2C 1F 00 00 */ cmpwi r31, 0x0
|
|
/* 80032F64 0002EDA4 93 DD 00 14 */ stw r30, 0x14(r29)
|
|
/* 80032F68 0002EDA8 93 DD 00 18 */ stw r30, 0x18(r29)
|
|
/* 80032F6C 0002EDAC 93 FD 00 1C */ stw r31, 0x1c(r29)
|
|
/* 80032F70 0002EDB0 40 80 00 0C */ bge lbl_80032F7C
|
|
/* 80032F74 0002EDB4 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 80032F78 0002EDB8 90 1D 00 1C */ stw r0, 0x1c(r29)
|
|
.global lbl_80032F7C
|
|
lbl_80032F7C:
|
|
/* 80032F7C 0002EDBC 4B FE E8 E5 */ bl OSRestoreInterrupts
|
|
/* 80032F80 0002EDC0 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80032F84 0002EDC4 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80032F88 0002EDC8 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80032F8C 0002EDCC 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80032F90 0002EDD0 7C 08 03 A6 */ mtlr r0
|
|
/* 80032F94 0002EDD4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80032F98 0002EDD8 4E 80 00 20 */ blr
|
|
/* 80032F9C 0002EDDC 00 00 00 00 */ .4byte 0x00000000
|
|
.global CPGPLinkCheck
|
|
CPGPLinkCheck:
|
|
/* 80032FA0 0002EDE0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80032FA4 0002EDE4 7C 08 02 A6 */ mflr r0
|
|
/* 80032FA8 0002EDE8 38 E0 00 00 */ li r7, 0x0
|
|
/* 80032FAC 0002EDEC 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80032FB0 0002EDF0 88 0D E5 D8 */ lbz r0, CPUFifoReady@sda21(r13)
|
|
/* 80032FB4 0002EDF4 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80032FB8 0002EDF8 41 82 00 10 */ beq lbl_80032FC8
|
|
/* 80032FBC 0002EDFC 88 0D E5 D9 */ lbz r0, GPFifoReady@sda21(r13)
|
|
/* 80032FC0 0002EE00 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80032FC4 0002EE04 40 82 00 0C */ bne lbl_80032FD0
|
|
.global lbl_80032FC8
|
|
lbl_80032FC8:
|
|
/* 80032FC8 0002EE08 38 60 00 00 */ li r3, 0x0
|
|
/* 80032FCC 0002EE0C 48 00 00 BC */ b lbl_80033088
|
|
.global lbl_80032FD0
|
|
lbl_80032FD0:
|
|
/* 80032FD0 0002EE10 3C 80 80 4A */ lis r4, GPFifo@ha
|
|
/* 80032FD4 0002EE14 3C 60 80 4A */ lis r3, CPUFifo@ha
|
|
/* 80032FD8 0002EE18 80 C4 AD 80 */ lwz r6, GPFifo@l(r4)
|
|
/* 80032FDC 0002EE1C 80 83 AD A4 */ lwz r4, CPUFifo@l(r3)
|
|
/* 80032FE0 0002EE20 7C 04 30 40 */ cmplw r4, r6
|
|
/* 80032FE4 0002EE24 40 82 00 08 */ bne lbl_80032FEC
|
|
/* 80032FE8 0002EE28 38 E0 00 01 */ li r7, 0x1
|
|
.global lbl_80032FEC
|
|
lbl_80032FEC:
|
|
/* 80032FEC 0002EE2C 3C A0 80 4A */ lis r5, GPFifo@ha
|
|
/* 80032FF0 0002EE30 3C 60 80 4A */ lis r3, CPUFifo@ha
|
|
/* 80032FF4 0002EE34 38 A5 AD 80 */ addi r5, r5, GPFifo@l
|
|
/* 80032FF8 0002EE38 38 63 AD A4 */ addi r3, r3, CPUFifo@l
|
|
/* 80032FFC 0002EE3C 80 05 00 04 */ lwz r0, 0x4(r5)
|
|
/* 80033000 0002EE40 80 A3 00 04 */ lwz r5, 0x4(r3)
|
|
/* 80033004 0002EE44 7C 05 00 40 */ cmplw r5, r0
|
|
/* 80033008 0002EE48 40 82 00 08 */ bne lbl_80033010
|
|
/* 8003300C 0002EE4C 38 E7 00 01 */ addi r7, r7, 0x1
|
|
.global lbl_80033010
|
|
lbl_80033010:
|
|
/* 80033010 0002EE50 28 07 00 02 */ cmplwi r7, 0x2
|
|
/* 80033014 0002EE54 40 82 00 0C */ bne lbl_80033020
|
|
/* 80033018 0002EE58 38 60 00 01 */ li r3, 0x1
|
|
/* 8003301C 0002EE5C 48 00 00 6C */ b lbl_80033088
|
|
.global lbl_80033020
|
|
lbl_80033020:
|
|
/* 80033020 0002EE60 7C 66 28 51 */ subf. r3, r6, r5
|
|
/* 80033024 0002EE64 7C C4 00 50 */ subf r6, r4, r0
|
|
/* 80033028 0002EE68 38 00 00 00 */ li r0, 0x0
|
|
/* 8003302C 0002EE6C 40 81 00 0C */ ble lbl_80033038
|
|
/* 80033030 0002EE70 2C 06 00 00 */ cmpwi r6, 0x0
|
|
/* 80033034 0002EE74 41 81 00 14 */ bgt lbl_80033048
|
|
.global lbl_80033038
|
|
lbl_80033038:
|
|
/* 80033038 0002EE78 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 8003303C 0002EE7C 40 80 00 10 */ bge lbl_8003304C
|
|
/* 80033040 0002EE80 2C 06 00 00 */ cmpwi r6, 0x0
|
|
/* 80033044 0002EE84 40 80 00 08 */ bge lbl_8003304C
|
|
.global lbl_80033048
|
|
lbl_80033048:
|
|
/* 80033048 0002EE88 38 00 00 01 */ li r0, 0x1
|
|
.global lbl_8003304C
|
|
lbl_8003304C:
|
|
/* 8003304C 0002EE8C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80033050 0002EE90 41 82 00 34 */ beq lbl_80033084
|
|
/* 80033054 0002EE94 3C 60 80 43 */ lis r3, "@1961"@ha
|
|
/* 80033058 0002EE98 38 63 0A 40 */ addi r3, r3, "@1961"@l
|
|
/* 8003305C 0002EE9C 4C C6 31 82 */ crclr 4*cr1+eq
|
|
/* 80033060 0002EEA0 4B FE A9 31 */ bl OSReport
|
|
/* 80033064 0002EEA4 3C 80 80 4A */ lis r4, GPFifo@ha
|
|
/* 80033068 0002EEA8 3C 60 80 43 */ lis r3, "@1962"@ha
|
|
/* 8003306C 0002EEAC 38 A4 AD 80 */ addi r5, r4, GPFifo@l
|
|
/* 80033070 0002EEB0 80 84 AD 80 */ lwz r4, -0x5280(r4)
|
|
/* 80033074 0002EEB4 80 A5 00 04 */ lwz r5, 0x4(r5)
|
|
/* 80033078 0002EEB8 38 63 0A 58 */ addi r3, r3, "@1962"@l
|
|
/* 8003307C 0002EEBC 4C C6 31 82 */ crclr 4*cr1+eq
|
|
/* 80033080 0002EEC0 4B FE A9 11 */ bl OSReport
|
|
.global lbl_80033084
|
|
lbl_80033084:
|
|
/* 80033084 0002EEC4 38 60 00 00 */ li r3, 0x0
|
|
.global lbl_80033088
|
|
lbl_80033088:
|
|
/* 80033088 0002EEC8 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 8003308C 0002EECC 7C 08 03 A6 */ mtlr r0
|
|
/* 80033090 0002EED0 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80033094 0002EED4 4E 80 00 20 */ blr
|
|
/* 80033098 0002EED8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8003309C 0002EEDC 00 00 00 00 */ .4byte 0x00000000
|
|
.global GXSetCPUFifo
|
|
GXSetCPUFifo:
|
|
/* 800330A0 0002EEE0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800330A4 0002EEE4 7C 08 02 A6 */ mflr r0
|
|
/* 800330A8 0002EEE8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800330AC 0002EEEC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 800330B0 0002EEF0 4B FD 42 8D */ bl lbl_8000733C
|
|
/* 800330B4 0002EEF4 7C 7B 1B 78 */ mr r27, r3
|
|
/* 800330B8 0002EEF8 4B FE E7 69 */ bl OSDisableInterrupts
|
|
/* 800330BC 0002EEFC 2C 1B 00 00 */ cmpwi r27, 0x0
|
|
/* 800330C0 0002EF00 7C 7E 1B 78 */ mr r30, r3
|
|
/* 800330C4 0002EF04 40 82 00 28 */ bne lbl_800330EC
|
|
/* 800330C8 0002EF08 3C 80 80 4A */ lis r4, CPUFifo@ha
|
|
/* 800330CC 0002EF0C 38 00 00 00 */ li r0, 0x0
|
|
/* 800330D0 0002EF10 38 84 AD A4 */ addi r4, r4, CPUFifo@l
|
|
/* 800330D4 0002EF14 98 0D E5 D8 */ stb r0, CPUFifoReady@sda21(r13)
|
|
/* 800330D8 0002EF18 98 0D E5 F0 */ stb r0, CPGPLinked@sda21(r13)
|
|
/* 800330DC 0002EF1C 98 04 00 22 */ stb r0, 0x22(r4)
|
|
/* 800330E0 0002EF20 98 04 00 21 */ stb r0, 0x21(r4)
|
|
/* 800330E4 0002EF24 4B FE E7 7D */ bl OSRestoreInterrupts
|
|
/* 800330E8 0002EF28 48 00 01 80 */ b lbl_80033268
|
|
.global lbl_800330EC
|
|
lbl_800330EC:
|
|
/* 800330EC 0002EF2C 3F 80 80 4A */ lis r28, CPUFifo@ha
|
|
/* 800330F0 0002EF30 3B A0 00 01 */ li r29, 0x1
|
|
/* 800330F4 0002EF34 3B FC AD A4 */ addi r31, r28, CPUFifo@l
|
|
/* 800330F8 0002EF38 80 1B 00 20 */ lwz r0, 0x20(r27)
|
|
/* 800330FC 0002EF3C 90 1F 00 20 */ stw r0, 0x20(r31)
|
|
/* 80033100 0002EF40 81 3B 00 00 */ lwz r9, 0x0(r27)
|
|
/* 80033104 0002EF44 81 1B 00 04 */ lwz r8, 0x4(r27)
|
|
/* 80033108 0002EF48 80 FB 00 08 */ lwz r7, 0x8(r27)
|
|
/* 8003310C 0002EF4C 80 DB 00 0C */ lwz r6, 0xc(r27)
|
|
/* 80033110 0002EF50 80 BB 00 10 */ lwz r5, 0x10(r27)
|
|
/* 80033114 0002EF54 80 9B 00 14 */ lwz r4, 0x14(r27)
|
|
/* 80033118 0002EF58 80 7B 00 18 */ lwz r3, 0x18(r27)
|
|
/* 8003311C 0002EF5C 80 1B 00 1C */ lwz r0, 0x1c(r27)
|
|
/* 80033120 0002EF60 91 3F 00 00 */ stw r9, 0x0(r31)
|
|
/* 80033124 0002EF64 91 1F 00 04 */ stw r8, 0x4(r31)
|
|
/* 80033128 0002EF68 90 FF 00 08 */ stw r7, 0x8(r31)
|
|
/* 8003312C 0002EF6C 90 DF 00 0C */ stw r6, 0xc(r31)
|
|
/* 80033130 0002EF70 90 BF 00 10 */ stw r5, 0x10(r31)
|
|
/* 80033134 0002EF74 90 9F 00 14 */ stw r4, 0x14(r31)
|
|
/* 80033138 0002EF78 90 7F 00 18 */ stw r3, 0x18(r31)
|
|
/* 8003313C 0002EF7C 90 1F 00 1C */ stw r0, 0x1c(r31)
|
|
/* 80033140 0002EF80 9B AD E5 D8 */ stb r29, CPUFifoReady@sda21(r13)
|
|
/* 80033144 0002EF84 9B BF 00 21 */ stb r29, 0x21(r31)
|
|
/* 80033148 0002EF88 4B FF FE 59 */ bl CPGPLinkCheck
|
|
/* 8003314C 0002EF8C 54 60 06 3F */ clrlwi. r0, r3, 24
|
|
/* 80033150 0002EF90 41 82 00 88 */ beq lbl_800331D8
|
|
/* 80033154 0002EF94 80 9C AD A4 */ lwz r4, -0x525c(r28)
|
|
/* 80033158 0002EF98 38 00 00 00 */ li r0, 0x0
|
|
/* 8003315C 0002EF9C 9B AD E5 F0 */ stb r29, CPGPLinked@sda21(r13)
|
|
/* 80033160 0002EFA0 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 80033164 0002EFA4 54 84 00 BE */ clrlwi r4, r4, 2
|
|
/* 80033168 0002EFA8 9B BF 00 22 */ stb r29, 0x22(r31)
|
|
/* 8003316C 0002EFAC 80 A2 86 08 */ lwz r5, __GXData@sda21(r2)
|
|
/* 80033170 0002EFB0 90 83 00 0C */ stw r4, 0xc(r3)
|
|
/* 80033174 0002EFB4 80 9F 00 04 */ lwz r4, 0x4(r31)
|
|
/* 80033178 0002EFB8 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 8003317C 0002EFBC 54 84 00 BE */ clrlwi r4, r4, 2
|
|
/* 80033180 0002EFC0 90 83 00 10 */ stw r4, 0x10(r3)
|
|
/* 80033184 0002EFC4 80 9F 00 18 */ lwz r4, 0x18(r31)
|
|
/* 80033188 0002EFC8 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 8003318C 0002EFCC 50 80 00 F4 */ rlwimi r0, r4, 0, 3, 26
|
|
/* 80033190 0002EFD0 90 03 00 14 */ stw r0, 0x14(r3)
|
|
/* 80033194 0002EFD4 80 05 00 10 */ lwz r0, 0x10(r5)
|
|
/* 80033198 0002EFD8 60 00 00 03 */ ori r0, r0, 0x3
|
|
/* 8003319C 0002EFDC 90 05 00 10 */ stw r0, 0x10(r5)
|
|
/* 800331A0 0002EFE0 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800331A4 0002EFE4 B0 03 00 04 */ sth r0, 0x4(r3)
|
|
/* 800331A8 0002EFE8 80 05 00 08 */ lwz r0, 0x8(r5)
|
|
/* 800331AC 0002EFEC 60 00 00 04 */ ori r0, r0, 0x4
|
|
/* 800331B0 0002EFF0 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 800331B4 0002EFF4 90 05 00 08 */ stw r0, 0x8(r5)
|
|
/* 800331B8 0002EFF8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800331BC 0002EFFC B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 800331C0 0002F000 80 05 00 08 */ lwz r0, 0x8(r5)
|
|
/* 800331C4 0002F004 60 00 00 10 */ ori r0, r0, 0x10
|
|
/* 800331C8 0002F008 90 05 00 08 */ stw r0, 0x8(r5)
|
|
/* 800331CC 0002F00C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800331D0 0002F010 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 800331D4 0002F014 48 00 00 88 */ b lbl_8003325C
|
|
.global lbl_800331D8
|
|
lbl_800331D8:
|
|
/* 800331D8 0002F018 88 0D E5 F0 */ lbz r0, CPGPLinked@sda21(r13)
|
|
/* 800331DC 0002F01C 38 80 00 00 */ li r4, 0x0
|
|
/* 800331E0 0002F020 98 9F 00 22 */ stb r4, 0x22(r31)
|
|
/* 800331E4 0002F024 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 800331E8 0002F028 41 82 00 20 */ beq lbl_80033208
|
|
/* 800331EC 0002F02C 80 62 86 08 */ lwz r3, __GXData@sda21(r2)
|
|
/* 800331F0 0002F030 80 03 00 08 */ lwz r0, 0x8(r3)
|
|
/* 800331F4 0002F034 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
|
|
/* 800331F8 0002F038 90 03 00 08 */ stw r0, 0x8(r3)
|
|
/* 800331FC 0002F03C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033200 0002F040 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80033204 0002F044 98 8D E5 F0 */ stb r4, CPGPLinked@sda21(r13)
|
|
.global lbl_80033208
|
|
lbl_80033208:
|
|
/* 80033208 0002F048 80 E2 86 08 */ lwz r7, __GXData@sda21(r2)
|
|
/* 8003320C 0002F04C 3C 60 80 4A */ lis r3, CPUFifo@ha
|
|
/* 80033210 0002F050 38 A3 AD A4 */ addi r5, r3, CPUFifo@l
|
|
/* 80033214 0002F054 38 00 00 00 */ li r0, 0x0
|
|
/* 80033218 0002F058 80 87 00 08 */ lwz r4, 0x8(r7)
|
|
/* 8003321C 0002F05C 54 86 07 B6 */ rlwinm r6, r4, 0, 30, 27
|
|
/* 80033220 0002F060 90 C7 00 08 */ stw r6, 0x8(r7)
|
|
/* 80033224 0002F064 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033228 0002F068 B0 C4 00 02 */ sth r6, 0x2(r4)
|
|
/* 8003322C 0002F06C 80 83 AD A4 */ lwz r4, -0x525c(r3)
|
|
/* 80033230 0002F070 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 80033234 0002F074 54 84 00 BE */ clrlwi r4, r4, 2
|
|
/* 80033238 0002F078 90 83 00 0C */ stw r4, 0xc(r3)
|
|
/* 8003323C 0002F07C 80 85 00 04 */ lwz r4, 0x4(r5)
|
|
/* 80033240 0002F080 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 80033244 0002F084 54 84 00 BE */ clrlwi r4, r4, 2
|
|
/* 80033248 0002F088 90 83 00 10 */ stw r4, 0x10(r3)
|
|
/* 8003324C 0002F08C 80 85 00 18 */ lwz r4, 0x18(r5)
|
|
/* 80033250 0002F090 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 80033254 0002F094 50 80 00 F4 */ rlwimi r0, r4, 0, 3, 26
|
|
/* 80033258 0002F098 90 03 00 14 */ stw r0, 0x14(r3)
|
|
.global lbl_8003325C
|
|
lbl_8003325C:
|
|
/* 8003325C 0002F09C 4B FE 6E C5 */ bl PPCSync
|
|
/* 80033260 0002F0A0 7F C3 F3 78 */ mr r3, r30
|
|
/* 80033264 0002F0A4 4B FE E5 FD */ bl OSRestoreInterrupts
|
|
.global lbl_80033268
|
|
lbl_80033268:
|
|
/* 80033268 0002F0A8 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 8003326C 0002F0AC 4B FD 41 1D */ bl lbl_80007388
|
|
/* 80033270 0002F0B0 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80033274 0002F0B4 7C 08 03 A6 */ mtlr r0
|
|
/* 80033278 0002F0B8 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8003327C 0002F0BC 4E 80 00 20 */ blr
|
|
.global GXSetGPFifo
|
|
GXSetGPFifo:
|
|
/* 80033280 0002F0C0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80033284 0002F0C4 7C 08 02 A6 */ mflr r0
|
|
/* 80033288 0002F0C8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8003328C 0002F0CC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80033290 0002F0D0 4B FD 40 AD */ bl lbl_8000733C
|
|
/* 80033294 0002F0D4 7C 7B 1B 78 */ mr r27, r3
|
|
/* 80033298 0002F0D8 4B FE E5 89 */ bl OSDisableInterrupts
|
|
/* 8003329C 0002F0DC 83 A2 86 08 */ lwz r29, __GXData@sda21(r2)
|
|
/* 800332A0 0002F0E0 2C 1B 00 00 */ cmpwi r27, 0x0
|
|
/* 800332A4 0002F0E4 7C 7C 1B 78 */ mr r28, r3
|
|
/* 800332A8 0002F0E8 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800332AC 0002F0EC 54 00 00 3C */ clrrwi r0, r0, 1
|
|
/* 800332B0 0002F0F0 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 800332B4 0002F0F4 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800332B8 0002F0F8 B0 04 00 02 */ sth r0, 0x2(r4)
|
|
/* 800332BC 0002F0FC 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800332C0 0002F100 54 00 07 B6 */ rlwinm r0, r0, 0, 30, 27
|
|
/* 800332C4 0002F104 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 800332C8 0002F108 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800332CC 0002F10C B0 04 00 02 */ sth r0, 0x2(r4)
|
|
/* 800332D0 0002F110 40 82 00 3C */ bne lbl_8003330C
|
|
/* 800332D4 0002F114 38 C0 00 00 */ li r6, 0x0
|
|
/* 800332D8 0002F118 98 CD E5 D9 */ stb r6, GPFifoReady@sda21(r13)
|
|
/* 800332DC 0002F11C 3C 80 80 4A */ lis r4, GPFifo@ha
|
|
/* 800332E0 0002F120 98 CD E5 F0 */ stb r6, CPGPLinked@sda21(r13)
|
|
/* 800332E4 0002F124 38 84 AD 80 */ addi r4, r4, GPFifo@l
|
|
/* 800332E8 0002F128 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800332EC 0002F12C 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
|
|
/* 800332F0 0002F130 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 800332F4 0002F134 80 AD E5 B4 */ lwz r5, __cpReg@sda21(r13)
|
|
/* 800332F8 0002F138 B0 05 00 02 */ sth r0, 0x2(r5)
|
|
/* 800332FC 0002F13C 98 C4 00 21 */ stb r6, 0x21(r4)
|
|
/* 80033300 0002F140 98 C4 00 22 */ stb r6, 0x22(r4)
|
|
/* 80033304 0002F144 4B FE E5 5D */ bl OSRestoreInterrupts
|
|
/* 80033308 0002F148 48 00 01 F0 */ b lbl_800334F8
|
|
.global lbl_8003330C
|
|
lbl_8003330C:
|
|
/* 8003330C 0002F14C 3C 60 80 4A */ lis r3, GPFifo@ha
|
|
/* 80033310 0002F150 3B E0 00 01 */ li r31, 0x1
|
|
/* 80033314 0002F154 3B C3 AD 80 */ addi r30, r3, GPFifo@l
|
|
/* 80033318 0002F158 80 1B 00 20 */ lwz r0, 0x20(r27)
|
|
/* 8003331C 0002F15C 90 1E 00 20 */ stw r0, 0x20(r30)
|
|
/* 80033320 0002F160 80 9B 00 04 */ lwz r4, 0x4(r27)
|
|
/* 80033324 0002F164 81 3B 00 08 */ lwz r9, 0x8(r27)
|
|
/* 80033328 0002F168 81 1B 00 0C */ lwz r8, 0xc(r27)
|
|
/* 8003332C 0002F16C 80 FB 00 10 */ lwz r7, 0x10(r27)
|
|
/* 80033330 0002F170 80 DB 00 14 */ lwz r6, 0x14(r27)
|
|
/* 80033334 0002F174 80 BB 00 18 */ lwz r5, 0x18(r27)
|
|
/* 80033338 0002F178 80 1B 00 1C */ lwz r0, 0x1c(r27)
|
|
/* 8003333C 0002F17C 81 5B 00 00 */ lwz r10, 0x0(r27)
|
|
/* 80033340 0002F180 90 9E 00 04 */ stw r4, 0x4(r30)
|
|
/* 80033344 0002F184 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033348 0002F188 91 3E 00 08 */ stw r9, 0x8(r30)
|
|
/* 8003334C 0002F18C 91 1E 00 0C */ stw r8, 0xc(r30)
|
|
/* 80033350 0002F190 90 FE 00 10 */ stw r7, 0x10(r30)
|
|
/* 80033354 0002F194 90 DE 00 14 */ stw r6, 0x14(r30)
|
|
/* 80033358 0002F198 90 BE 00 18 */ stw r5, 0x18(r30)
|
|
/* 8003335C 0002F19C 90 1E 00 1C */ stw r0, 0x1c(r30)
|
|
/* 80033360 0002F1A0 9B ED E5 D9 */ stb r31, GPFifoReady@sda21(r13)
|
|
/* 80033364 0002F1A4 9B FE 00 22 */ stb r31, 0x22(r30)
|
|
/* 80033368 0002F1A8 91 5E 00 00 */ stw r10, 0x0(r30)
|
|
/* 8003336C 0002F1AC B1 44 00 20 */ sth r10, 0x20(r4)
|
|
/* 80033370 0002F1B0 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033374 0002F1B4 80 1E 00 04 */ lwz r0, 0x4(r30)
|
|
/* 80033378 0002F1B8 B0 04 00 24 */ sth r0, 0x24(r4)
|
|
/* 8003337C 0002F1BC 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033380 0002F1C0 80 1E 00 1C */ lwz r0, 0x1c(r30)
|
|
/* 80033384 0002F1C4 B0 04 00 30 */ sth r0, 0x30(r4)
|
|
/* 80033388 0002F1C8 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 8003338C 0002F1CC 80 1E 00 18 */ lwz r0, 0x18(r30)
|
|
/* 80033390 0002F1D0 B0 04 00 34 */ sth r0, 0x34(r4)
|
|
/* 80033394 0002F1D4 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033398 0002F1D8 80 1E 00 14 */ lwz r0, 0x14(r30)
|
|
/* 8003339C 0002F1DC B0 04 00 38 */ sth r0, 0x38(r4)
|
|
/* 800333A0 0002F1E0 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800333A4 0002F1E4 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 800333A8 0002F1E8 B0 04 00 28 */ sth r0, 0x28(r4)
|
|
/* 800333AC 0002F1EC 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800333B0 0002F1F0 80 1E 00 10 */ lwz r0, 0x10(r30)
|
|
/* 800333B4 0002F1F4 B0 04 00 2C */ sth r0, 0x2c(r4)
|
|
/* 800333B8 0002F1F8 80 03 AD 80 */ lwz r0, -0x5280(r3)
|
|
/* 800333BC 0002F1FC 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800333C0 0002F200 54 00 84 BE */ extrwi r0, r0, 14, 2
|
|
/* 800333C4 0002F204 B0 03 00 22 */ sth r0, 0x22(r3)
|
|
/* 800333C8 0002F208 80 1E 00 04 */ lwz r0, 0x4(r30)
|
|
/* 800333CC 0002F20C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800333D0 0002F210 54 00 84 BE */ extrwi r0, r0, 14, 2
|
|
/* 800333D4 0002F214 B0 03 00 26 */ sth r0, 0x26(r3)
|
|
/* 800333D8 0002F218 80 1E 00 1C */ lwz r0, 0x1c(r30)
|
|
/* 800333DC 0002F21C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800333E0 0002F220 7C 00 86 70 */ srawi r0, r0, 16
|
|
/* 800333E4 0002F224 B0 03 00 32 */ sth r0, 0x32(r3)
|
|
/* 800333E8 0002F228 80 1E 00 18 */ lwz r0, 0x18(r30)
|
|
/* 800333EC 0002F22C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800333F0 0002F230 54 00 84 BE */ extrwi r0, r0, 14, 2
|
|
/* 800333F4 0002F234 B0 03 00 36 */ sth r0, 0x36(r3)
|
|
/* 800333F8 0002F238 80 1E 00 14 */ lwz r0, 0x14(r30)
|
|
/* 800333FC 0002F23C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033400 0002F240 54 00 84 BE */ extrwi r0, r0, 14, 2
|
|
/* 80033404 0002F244 B0 03 00 3A */ sth r0, 0x3a(r3)
|
|
/* 80033408 0002F248 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 8003340C 0002F24C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033410 0002F250 54 00 84 3E */ srwi r0, r0, 16
|
|
/* 80033414 0002F254 B0 03 00 2A */ sth r0, 0x2a(r3)
|
|
/* 80033418 0002F258 80 1E 00 10 */ lwz r0, 0x10(r30)
|
|
/* 8003341C 0002F25C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033420 0002F260 54 00 84 3E */ srwi r0, r0, 16
|
|
/* 80033424 0002F264 B0 03 00 2E */ sth r0, 0x2e(r3)
|
|
/* 80033428 0002F268 4B FE 6C F9 */ bl PPCSync
|
|
/* 8003342C 0002F26C 4B FF FB 75 */ bl CPGPLinkCheck
|
|
/* 80033430 0002F270 54 60 06 3F */ clrlwi. r0, r3, 24
|
|
/* 80033434 0002F274 41 82 00 3C */ beq lbl_80033470
|
|
/* 80033438 0002F278 9B ED E5 F0 */ stb r31, CPGPLinked@sda21(r13)
|
|
/* 8003343C 0002F27C 9B FE 00 21 */ stb r31, 0x21(r30)
|
|
/* 80033440 0002F280 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 80033444 0002F284 60 00 00 04 */ ori r0, r0, 0x4
|
|
/* 80033448 0002F288 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 8003344C 0002F28C 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033450 0002F290 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033454 0002F294 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80033458 0002F298 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 8003345C 0002F29C 60 00 00 10 */ ori r0, r0, 0x10
|
|
/* 80033460 0002F2A0 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033464 0002F2A4 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033468 0002F2A8 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 8003346C 0002F2AC 48 00 00 38 */ b lbl_800334A4
|
|
.global lbl_80033470
|
|
lbl_80033470:
|
|
/* 80033470 0002F2B0 38 00 00 00 */ li r0, 0x0
|
|
/* 80033474 0002F2B4 98 0D E5 F0 */ stb r0, CPGPLinked@sda21(r13)
|
|
/* 80033478 0002F2B8 98 1E 00 21 */ stb r0, 0x21(r30)
|
|
/* 8003347C 0002F2BC 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 80033480 0002F2C0 54 00 07 B6 */ rlwinm r0, r0, 0, 30, 27
|
|
/* 80033484 0002F2C4 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033488 0002F2C8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 8003348C 0002F2CC B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80033490 0002F2D0 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 80033494 0002F2D4 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
|
|
/* 80033498 0002F2D8 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 8003349C 0002F2DC 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800334A0 0002F2E0 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
.global lbl_800334A4
|
|
lbl_800334A4:
|
|
/* 800334A4 0002F2E4 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800334A8 0002F2E8 7F 83 E3 78 */ mr r3, r28
|
|
/* 800334AC 0002F2EC 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800334B0 0002F2F0 54 00 07 FA */ rlwinm r0, r0, 0, 31, 29
|
|
/* 800334B4 0002F2F4 80 A2 86 08 */ lwz r5, __GXData@sda21(r2)
|
|
/* 800334B8 0002F2F8 54 00 06 F2 */ rlwinm r0, r0, 0, 27, 25
|
|
/* 800334BC 0002F2FC B0 04 00 02 */ sth r0, 0x2(r4)
|
|
/* 800334C0 0002F300 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800334C4 0002F304 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800334C8 0002F308 B0 04 00 02 */ sth r0, 0x2(r4)
|
|
/* 800334CC 0002F30C 80 05 00 10 */ lwz r0, 0x10(r5)
|
|
/* 800334D0 0002F310 60 00 00 03 */ ori r0, r0, 0x3
|
|
/* 800334D4 0002F314 90 05 00 10 */ stw r0, 0x10(r5)
|
|
/* 800334D8 0002F318 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800334DC 0002F31C B0 04 00 04 */ sth r0, 0x4(r4)
|
|
/* 800334E0 0002F320 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800334E4 0002F324 60 00 00 01 */ ori r0, r0, 0x1
|
|
/* 800334E8 0002F328 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 800334EC 0002F32C 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 800334F0 0002F330 B0 04 00 02 */ sth r0, 0x2(r4)
|
|
/* 800334F4 0002F334 4B FE E3 6D */ bl OSRestoreInterrupts
|
|
.global lbl_800334F8
|
|
lbl_800334F8:
|
|
/* 800334F8 0002F338 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 800334FC 0002F33C 4B FD 3E 8D */ bl lbl_80007388
|
|
/* 80033500 0002F340 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80033504 0002F344 7C 08 03 A6 */ mtlr r0
|
|
/* 80033508 0002F348 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8003350C 0002F34C 4E 80 00 20 */ blr
|
|
.global __GXIsGPFifoReady
|
|
__GXIsGPFifoReady:
|
|
/* 80033510 0002F350 88 6D E5 D9 */ lbz r3, GPFifoReady@sda21(r13)
|
|
/* 80033514 0002F354 4E 80 00 20 */ blr
|
|
/* 80033518 0002F358 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8003351C 0002F35C 00 00 00 00 */ .4byte 0x00000000
|
|
.global GXSetBreakPtCallback
|
|
GXSetBreakPtCallback:
|
|
/* 80033520 0002F360 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80033524 0002F364 7C 08 02 A6 */ mflr r0
|
|
/* 80033528 0002F368 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 8003352C 0002F36C 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80033530 0002F370 93 C1 00 08 */ stw r30, 0x8(r1)
|
|
/* 80033534 0002F374 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80033538 0002F378 83 ED E5 E4 */ lwz r31, BreakPointCB@sda21(r13)
|
|
/* 8003353C 0002F37C 4B FE E2 E5 */ bl OSDisableInterrupts
|
|
/* 80033540 0002F380 93 CD E5 E4 */ stw r30, BreakPointCB@sda21(r13)
|
|
/* 80033544 0002F384 4B FE E3 1D */ bl OSRestoreInterrupts
|
|
/* 80033548 0002F388 7F E3 FB 78 */ mr r3, r31
|
|
/* 8003354C 0002F38C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 80033550 0002F390 83 C1 00 08 */ lwz r30, 0x8(r1)
|
|
/* 80033554 0002F394 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80033558 0002F398 7C 08 03 A6 */ mtlr r0
|
|
/* 8003355C 0002F39C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80033560 0002F3A0 4E 80 00 20 */ blr
|
|
/* 80033564 0002F3A4 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80033568 0002F3A8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8003356C 0002F3AC 00 00 00 00 */ .4byte 0x00000000
|
|
.global __GXFifoInit
|
|
__GXFifoInit:
|
|
/* 80033570 0002F3B0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80033574 0002F3B4 7C 08 02 A6 */ mflr r0
|
|
/* 80033578 0002F3B8 3C 80 80 03 */ lis r4, GXCPInterruptHandler@ha
|
|
/* 8003357C 0002F3BC 38 60 00 11 */ li r3, 0x11
|
|
/* 80033580 0002F3C0 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80033584 0002F3C4 38 84 2D B0 */ addi r4, r4, GXCPInterruptHandler@l
|
|
/* 80033588 0002F3C8 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 8003358C 0002F3CC 4B FE E3 05 */ bl __OSSetInterruptHandler
|
|
/* 80033590 0002F3D0 38 60 40 00 */ li r3, 0x4000
|
|
/* 80033594 0002F3D4 4B FE E6 DD */ bl __OSUnmaskInterrupts
|
|
/* 80033598 0002F3D8 4B FF 11 B9 */ bl OSGetCurrentThread
|
|
/* 8003359C 0002F3DC 3B E0 00 00 */ li r31, 0x0
|
|
/* 800335A0 0002F3E0 90 6D E5 EC */ stw r3, __GXCurrentThread@sda21(r13)
|
|
/* 800335A4 0002F3E4 3C 60 80 4A */ lis r3, CPUFifo@ha
|
|
/* 800335A8 0002F3E8 38 80 00 00 */ li r4, 0x0
|
|
/* 800335AC 0002F3EC 93 ED E5 E8 */ stw r31, GXOverflowSuspendInProgress@sda21(r13)
|
|
/* 800335B0 0002F3F0 38 63 AD A4 */ addi r3, r3, CPUFifo@l
|
|
/* 800335B4 0002F3F4 38 A0 00 24 */ li r5, 0x24
|
|
/* 800335B8 0002F3F8 4B FD 0D 99 */ bl memset
|
|
/* 800335BC 0002F3FC 3C 60 80 4A */ lis r3, GPFifo@ha
|
|
/* 800335C0 0002F400 38 80 00 00 */ li r4, 0x0
|
|
/* 800335C4 0002F404 38 63 AD 80 */ addi r3, r3, GPFifo@l
|
|
/* 800335C8 0002F408 38 A0 00 24 */ li r5, 0x24
|
|
/* 800335CC 0002F40C 4B FD 0D 85 */ bl memset
|
|
/* 800335D0 0002F410 9B ED E5 D8 */ stb r31, CPUFifoReady@sda21(r13)
|
|
/* 800335D4 0002F414 9B ED E5 D9 */ stb r31, GPFifoReady@sda21(r13)
|
|
/* 800335D8 0002F418 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 800335DC 0002F41C 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 800335E0 0002F420 7C 08 03 A6 */ mtlr r0
|
|
/* 800335E4 0002F424 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 800335E8 0002F428 4E 80 00 20 */ blr
|
|
/* 800335EC 0002F42C 00 00 00 00 */ .4byte 0x00000000
|
|
.global __GXCleanGPFifo
|
|
__GXCleanGPFifo:
|
|
/* 800335F0 0002F430 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800335F4 0002F434 7C 08 02 A6 */ mflr r0
|
|
/* 800335F8 0002F438 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800335FC 0002F43C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80033600 0002F440 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80033604 0002F444 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80033608 0002F448 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8003360C 0002F44C 88 0D E5 D9 */ lbz r0, GPFifoReady@sda21(r13)
|
|
/* 80033610 0002F450 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80033614 0002F454 41 82 01 5C */ beq lbl_80033770
|
|
/* 80033618 0002F458 4B FE E2 09 */ bl OSDisableInterrupts
|
|
/* 8003361C 0002F45C 83 A2 86 08 */ lwz r29, __GXData@sda21(r2)
|
|
/* 80033620 0002F460 3F C0 80 4A */ lis r30, GPFifo@ha
|
|
/* 80033624 0002F464 7C 7C 1B 78 */ mr r28, r3
|
|
/* 80033628 0002F468 3B E0 00 00 */ li r31, 0x0
|
|
/* 8003362C 0002F46C 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 80033630 0002F470 3B DE AD 80 */ addi r30, r30, GPFifo@l
|
|
/* 80033634 0002F474 54 00 00 3C */ clrrwi r0, r0, 1
|
|
/* 80033638 0002F478 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 8003363C 0002F47C 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033640 0002F480 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80033644 0002F484 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 80033648 0002F488 54 00 07 B6 */ rlwinm r0, r0, 0, 30, 27
|
|
/* 8003364C 0002F48C 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033650 0002F490 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033654 0002F494 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80033658 0002F498 80 1E 00 18 */ lwz r0, 0x18(r30)
|
|
/* 8003365C 0002F49C 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
/* 80033660 0002F4A0 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033664 0002F4A4 93 FE 00 1C */ stw r31, 0x1c(r30)
|
|
/* 80033668 0002F4A8 B3 E3 00 30 */ sth r31, 0x30(r3)
|
|
/* 8003366C 0002F4AC 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033670 0002F4B0 80 1E 00 18 */ lwz r0, 0x18(r30)
|
|
/* 80033674 0002F4B4 B0 03 00 34 */ sth r0, 0x34(r3)
|
|
/* 80033678 0002F4B8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 8003367C 0002F4BC 80 1E 00 14 */ lwz r0, 0x14(r30)
|
|
/* 80033680 0002F4C0 B0 03 00 38 */ sth r0, 0x38(r3)
|
|
/* 80033684 0002F4C4 80 1E 00 1C */ lwz r0, 0x1c(r30)
|
|
/* 80033688 0002F4C8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 8003368C 0002F4CC 7C 00 86 70 */ srawi r0, r0, 16
|
|
/* 80033690 0002F4D0 B0 03 00 32 */ sth r0, 0x32(r3)
|
|
/* 80033694 0002F4D4 80 1E 00 18 */ lwz r0, 0x18(r30)
|
|
/* 80033698 0002F4D8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 8003369C 0002F4DC 54 00 84 BE */ extrwi r0, r0, 14, 2
|
|
/* 800336A0 0002F4E0 B0 03 00 36 */ sth r0, 0x36(r3)
|
|
/* 800336A4 0002F4E4 80 1E 00 14 */ lwz r0, 0x14(r30)
|
|
/* 800336A8 0002F4E8 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 800336AC 0002F4EC 54 00 84 BE */ extrwi r0, r0, 14, 2
|
|
/* 800336B0 0002F4F0 B0 03 00 3A */ sth r0, 0x3a(r3)
|
|
/* 800336B4 0002F4F4 4B FE 6A 6D */ bl PPCSync
|
|
/* 800336B8 0002F4F8 88 0D E5 F0 */ lbz r0, CPGPLinked@sda21(r13)
|
|
/* 800336BC 0002F4FC 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 800336C0 0002F500 41 82 00 5C */ beq lbl_8003371C
|
|
/* 800336C4 0002F504 3C A0 80 4A */ lis r5, CPUFifo@ha
|
|
/* 800336C8 0002F508 80 9E 00 18 */ lwz r4, 0x18(r30)
|
|
/* 800336CC 0002F50C 38 A5 AD A4 */ addi r5, r5, CPUFifo@l
|
|
/* 800336D0 0002F510 80 7E 00 14 */ lwz r3, 0x14(r30)
|
|
/* 800336D4 0002F514 80 1E 00 1C */ lwz r0, 0x1c(r30)
|
|
/* 800336D8 0002F518 50 9F 00 F4 */ rlwimi r31, r4, 0, 3, 26
|
|
/* 800336DC 0002F51C 90 65 00 14 */ stw r3, 0x14(r5)
|
|
/* 800336E0 0002F520 80 6D E5 B0 */ lwz r3, __piReg@sda21(r13)
|
|
/* 800336E4 0002F524 90 85 00 18 */ stw r4, 0x18(r5)
|
|
/* 800336E8 0002F528 90 05 00 1C */ stw r0, 0x1c(r5)
|
|
/* 800336EC 0002F52C 93 E3 00 14 */ stw r31, 0x14(r3)
|
|
/* 800336F0 0002F530 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 800336F4 0002F534 60 00 00 04 */ ori r0, r0, 0x4
|
|
/* 800336F8 0002F538 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 800336FC 0002F53C 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033700 0002F540 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033704 0002F544 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
/* 80033708 0002F548 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 8003370C 0002F54C 60 00 00 10 */ ori r0, r0, 0x10
|
|
/* 80033710 0002F550 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033714 0002F554 80 6D E5 B4 */ lwz r3, __cpReg@sda21(r13)
|
|
/* 80033718 0002F558 B0 03 00 02 */ sth r0, 0x2(r3)
|
|
.global lbl_8003371C
|
|
lbl_8003371C:
|
|
/* 8003371C 0002F55C 80 9D 00 08 */ lwz r4, 0x8(r29)
|
|
/* 80033720 0002F560 38 00 00 00 */ li r0, 0x0
|
|
/* 80033724 0002F564 80 C2 86 08 */ lwz r6, __GXData@sda21(r2)
|
|
/* 80033728 0002F568 7F 83 E3 78 */ mr r3, r28
|
|
/* 8003372C 0002F56C 54 84 07 FA */ rlwinm r4, r4, 0, 31, 29
|
|
/* 80033730 0002F570 54 85 06 F2 */ rlwinm r5, r4, 0, 27, 25
|
|
/* 80033734 0002F574 90 BD 00 08 */ stw r5, 0x8(r29)
|
|
/* 80033738 0002F578 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 8003373C 0002F57C B0 A4 00 02 */ sth r5, 0x2(r4)
|
|
/* 80033740 0002F580 90 0D E5 E0 */ stw r0, __GXCurrentBP@sda21(r13)
|
|
/* 80033744 0002F584 80 06 00 10 */ lwz r0, 0x10(r6)
|
|
/* 80033748 0002F588 60 00 00 03 */ ori r0, r0, 0x3
|
|
/* 8003374C 0002F58C 90 06 00 10 */ stw r0, 0x10(r6)
|
|
/* 80033750 0002F590 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033754 0002F594 B0 04 00 04 */ sth r0, 0x4(r4)
|
|
/* 80033758 0002F598 80 1D 00 08 */ lwz r0, 0x8(r29)
|
|
/* 8003375C 0002F59C 60 00 00 01 */ ori r0, r0, 0x1
|
|
/* 80033760 0002F5A0 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80033764 0002F5A4 80 8D E5 B4 */ lwz r4, __cpReg@sda21(r13)
|
|
/* 80033768 0002F5A8 B0 04 00 02 */ sth r0, 0x2(r4)
|
|
/* 8003376C 0002F5AC 4B FE E0 F5 */ bl OSRestoreInterrupts
|
|
.global lbl_80033770
|
|
lbl_80033770:
|
|
/* 80033770 0002F5B0 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80033774 0002F5B4 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80033778 0002F5B8 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8003377C 0002F5BC 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80033780 0002F5C0 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 80033784 0002F5C4 7C 08 03 A6 */ mtlr r0
|
|
/* 80033788 0002F5C8 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8003378C 0002F5CC 4E 80 00 20 */ blr
|
|
.global GXResetOverflowCount
|
|
GXResetOverflowCount:
|
|
/* 80033790 0002F5D0 80 6D E5 DC */ lwz r3, __GXOverflowCount@sda21(r13)
|
|
/* 80033794 0002F5D4 38 00 00 00 */ li r0, 0x0
|
|
/* 80033798 0002F5D8 90 0D E5 DC */ stw r0, __GXOverflowCount@sda21(r13)
|
|
/* 8003379C 0002F5DC 4E 80 00 20 */ blr
|
|
.include "macros.inc"
|
|
|
|
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
|
|
.global "@1961"
|
|
"@1961":
|
|
|
|
.4byte 0x43505546
|
|
.4byte 0x69666F3A
|
|
.4byte 0x20253038
|
|
.4byte 0x58202D20
|
|
.4byte 0x25303858
|
|
.4byte 0x0A000000
|
|
|
|
.global "@1962"
|
|
"@1962":
|
|
|
|
.4byte 0x47502046
|
|
.4byte 0x69666F3A
|
|
.4byte 0x20253038
|
|
.4byte 0x58202D20
|
|
.4byte 0x25303858
|
|
.4byte 0x0A000000
|
|
.include "macros.inc"
|
|
|
|
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
|
|
.global GPFifo
|
|
GPFifo:
|
|
.skip 0x24
|
|
|
|
.global CPUFifo
|
|
CPUFifo:
|
|
.skip 0x5C
|
|
.include "macros.inc"
|
|
|
|
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
|
|
.global CPUFifoReady
|
|
CPUFifoReady:
|
|
.skip 0x1
|
|
|
|
.global GPFifoReady
|
|
GPFifoReady:
|
|
.skip 0x3
|
|
|
|
.global __GXOverflowCount
|
|
__GXOverflowCount:
|
|
.skip 0x4
|
|
|
|
.global __GXCurrentBP
|
|
__GXCurrentBP:
|
|
.skip 0x4
|
|
|
|
.global BreakPointCB
|
|
BreakPointCB:
|
|
.skip 0x4
|
|
|
|
.global GXOverflowSuspendInProgress
|
|
GXOverflowSuspendInProgress:
|
|
.skip 0x4
|
|
|
|
.global __GXCurrentThread
|
|
__GXCurrentThread:
|
|
.skip 0x4
|
|
|
|
.global CPGPLinked
|
|
CPGPLinked:
|
|
.skip 0x8
|