.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global EXIWriteReg EXIWriteReg: /* 80276120 00271D80 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80276124 00271D84 7C 08 02 A6 */ mflr r0 /* 80276128 00271D88 2C 07 00 02 */ cmpwi r7, 2 /* 8027612C 00271D8C 90 01 00 24 */ stw r0, 0x24(r1) /* 80276130 00271D90 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80276134 00271D94 7C 7F 1B 78 */ mr r31, r3 /* 80276138 00271D98 93 C1 00 18 */ stw r30, 0x18(r1) /* 8027613C 00271D9C 93 A1 00 14 */ stw r29, 0x14(r1) /* 80276140 00271DA0 7C 9D 23 78 */ mr r29, r4 /* 80276144 00271DA4 90 A1 00 08 */ stw r5, 8(r1) /* 80276148 00271DA8 41 82 00 24 */ beq lbl_8027616C /* 8027614C 00271DAC 40 80 00 34 */ bge lbl_80276180 /* 80276150 00271DB0 2C 07 00 01 */ cmpwi r7, 1 /* 80276154 00271DB4 40 80 00 08 */ bge lbl_8027615C /* 80276158 00271DB8 48 00 00 28 */ b lbl_80276180 lbl_8027615C: /* 8027615C 00271DBC 88 06 00 00 */ lbz r0, 0(r6) /* 80276160 00271DC0 54 00 C0 0E */ slwi r0, r0, 0x18 /* 80276164 00271DC4 90 01 00 0C */ stw r0, 0xc(r1) /* 80276168 00271DC8 48 00 00 34 */ b lbl_8027619C lbl_8027616C: /* 8027616C 00271DCC A0 66 00 00 */ lhz r3, 0(r6) /* 80276170 00271DD0 54 60 42 1E */ rlwinm r0, r3, 8, 8, 0xf /* 80276174 00271DD4 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 /* 80276178 00271DD8 90 01 00 0C */ stw r0, 0xc(r1) /* 8027617C 00271DDC 48 00 00 20 */ b lbl_8027619C lbl_80276180: /* 80276180 00271DE0 80 86 00 00 */ lwz r4, 0(r6) /* 80276184 00271DE4 54 83 42 1E */ rlwinm r3, r4, 8, 8, 0xf /* 80276188 00271DE8 54 80 C4 2E */ rlwinm r0, r4, 0x18, 0x10, 0x17 /* 8027618C 00271DEC 50 83 C0 0E */ rlwimi r3, r4, 0x18, 0, 7 /* 80276190 00271DF0 50 80 46 3E */ rlwimi r0, r4, 8, 0x18, 0x1f /* 80276194 00271DF4 7C 60 03 78 */ or r0, r3, r0 /* 80276198 00271DF8 90 01 00 0C */ stw r0, 0xc(r1) lbl_8027619C: /* 8027619C 00271DFC 7F E3 FB 78 */ mr r3, r31 /* 802761A0 00271E00 7F A4 EB 78 */ mr r4, r29 /* 802761A4 00271E04 38 A0 00 00 */ li r5, 0 /* 802761A8 00271E08 4B FF F6 9D */ bl EXILock /* 802761AC 00271E0C 7C 60 00 34 */ cntlzw r0, r3 /* 802761B0 00271E10 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f /* 802761B4 00271E14 41 82 00 0C */ beq lbl_802761C0 /* 802761B8 00271E18 38 60 00 00 */ li r3, 0 /* 802761BC 00271E1C 48 00 00 D4 */ b lbl_80276290 lbl_802761C0: /* 802761C0 00271E20 7F E3 FB 78 */ mr r3, r31 /* 802761C4 00271E24 7F A4 EB 78 */ mr r4, r29 /* 802761C8 00271E28 38 A0 00 04 */ li r5, 4 /* 802761CC 00271E2C 4B FF EE E5 */ bl EXISelect /* 802761D0 00271E30 7C 60 00 34 */ cntlzw r0, r3 /* 802761D4 00271E34 54 00 D9 7E */ srwi r0, r0, 5 /* 802761D8 00271E38 7F DE 03 79 */ or. r30, r30, r0 /* 802761DC 00271E3C 41 82 00 14 */ beq lbl_802761F0 /* 802761E0 00271E40 7F E3 FB 78 */ mr r3, r31 /* 802761E4 00271E44 4B FF F7 5D */ bl EXIUnlock /* 802761E8 00271E48 38 60 00 00 */ li r3, 0 /* 802761EC 00271E4C 48 00 00 A4 */ b lbl_80276290 lbl_802761F0: /* 802761F0 00271E50 7F E3 FB 78 */ mr r3, r31 /* 802761F4 00271E54 38 81 00 08 */ addi r4, r1, 8 /* 802761F8 00271E58 38 A0 00 04 */ li r5, 4 /* 802761FC 00271E5C 38 C0 00 01 */ li r6, 1 /* 80276200 00271E60 38 E0 00 00 */ li r7, 0 /* 80276204 00271E64 4B FF E4 45 */ bl EXIImm /* 80276208 00271E68 7C 60 00 34 */ cntlzw r0, r3 /* 8027620C 00271E6C 7F E3 FB 78 */ mr r3, r31 /* 80276210 00271E70 54 00 D9 7E */ srwi r0, r0, 5 /* 80276214 00271E74 7F DE 03 78 */ or r30, r30, r0 /* 80276218 00271E78 4B FF E8 49 */ bl EXISync /* 8027621C 00271E7C 7C 60 00 34 */ cntlzw r0, r3 /* 80276220 00271E80 7F E3 FB 78 */ mr r3, r31 /* 80276224 00271E84 54 00 D9 7E */ srwi r0, r0, 5 /* 80276228 00271E88 38 81 00 0C */ addi r4, r1, 0xc /* 8027622C 00271E8C 7F DE 03 78 */ or r30, r30, r0 /* 80276230 00271E90 38 A0 00 04 */ li r5, 4 /* 80276234 00271E94 38 C0 00 01 */ li r6, 1 /* 80276238 00271E98 38 E0 00 00 */ li r7, 0 /* 8027623C 00271E9C 4B FF E4 0D */ bl EXIImm /* 80276240 00271EA0 7C 60 00 34 */ cntlzw r0, r3 /* 80276244 00271EA4 7F E3 FB 78 */ mr r3, r31 /* 80276248 00271EA8 54 00 D9 7E */ srwi r0, r0, 5 /* 8027624C 00271EAC 7F DE 03 78 */ or r30, r30, r0 /* 80276250 00271EB0 4B FF E8 11 */ bl EXISync /* 80276254 00271EB4 7C 60 00 34 */ cntlzw r0, r3 /* 80276258 00271EB8 7F E3 FB 78 */ mr r3, r31 /* 8027625C 00271EBC 54 00 D9 7E */ srwi r0, r0, 5 /* 80276260 00271EC0 7F DE 03 78 */ or r30, r30, r0 /* 80276264 00271EC4 4B FF EF 7D */ bl EXIDeselect /* 80276268 00271EC8 7C 60 00 34 */ cntlzw r0, r3 /* 8027626C 00271ECC 7F E3 FB 78 */ mr r3, r31 /* 80276270 00271ED0 54 00 D9 7E */ srwi r0, r0, 5 /* 80276274 00271ED4 7F DE 03 78 */ or r30, r30, r0 /* 80276278 00271ED8 4B FF F6 C9 */ bl EXIUnlock /* 8027627C 00271EDC 7C 60 00 34 */ cntlzw r0, r3 /* 80276280 00271EE0 54 00 D9 7E */ srwi r0, r0, 5 /* 80276284 00271EE4 7F DE 03 78 */ or r30, r30, r0 /* 80276288 00271EE8 7F C0 00 34 */ cntlzw r0, r30 /* 8027628C 00271EEC 54 03 D9 7E */ srwi r3, r0, 5 lbl_80276290: /* 80276290 00271EF0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80276294 00271EF4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80276298 00271EF8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8027629C 00271EFC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802762A0 00271F00 7C 08 03 A6 */ mtlr r0 /* 802762A4 00271F04 38 21 00 20 */ addi r1, r1, 0x20 /* 802762A8 00271F08 4E 80 00 20 */ blr