Files
tp/asm/J3DU/J3DUClipper.s
T

458 lines
23 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 80273778
.global J3DUClipper_NS_init
J3DUClipper_NS_init:
/* 80273778 002706B8 C0 02 B8 78 */ lfs f0, lbl_80455278-_SDA2_BASE_(r2)
/* 8027377C 002706BC D0 03 00 54 */ stfs f0, 0x54(r3)
/* 80273780 002706C0 C0 02 B8 7C */ lfs f0, lbl_8045527C-_SDA2_BASE_(r2)
/* 80273784 002706C4 D0 03 00 58 */ stfs f0, 0x58(r3)
/* 80273788 002706C8 4E 80 00 20 */ blr
.global J3DUClipper_NS_calcViewFrustum
J3DUClipper_NS_calcViewFrustum:
/* 8027378C 002706CC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80273790 002706D0 7C 08 02 A6 */ mflr r0
/* 80273794 002706D4 90 01 00 44 */ stw r0, 0x44(r1)
/* 80273798 002706D8 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8027379C 002706DC 93 C1 00 38 */ stw r30, 0x38(r1)
/* 802737A0 002706E0 7C 7E 1B 78 */ mr r30, r3
/* 802737A4 002706E4 3C 60 80 3A */ lis r3, lbl_8039A948@ha
/* 802737A8 002706E8 3B E3 A9 48 */ addi r31, r3, lbl_8039A948@l
/* 802737AC 002706EC C0 42 B8 80 */ lfs f2, lbl_80455280-_SDA2_BASE_(r2)
/* 802737B0 002706F0 C0 22 B8 84 */ lfs f1, lbl_80455284-_SDA2_BASE_(r2)
/* 802737B4 002706F4 C0 1E 00 4C */ lfs f0, 0x4c(r30)
/* 802737B8 002706F8 EC 01 00 32 */ fmuls f0, f1, f0
/* 802737BC 002706FC EC 22 00 32 */ fmuls f1, f2, f0
/* 802737C0 00270700 48 0F 8E A9 */ bl func_8036C668
/* 802737C4 00270704 FC 00 08 18 */ frsp f0, f1
/* 802737C8 00270708 C0 3E 00 54 */ lfs f1, 0x54(r30)
/* 802737CC 0027070C EC 81 00 32 */ fmuls f4, f1, f0
/* 802737D0 00270710 C0 1E 00 50 */ lfs f0, 0x50(r30)
/* 802737D4 00270714 EC A0 01 32 */ fmuls f5, f0, f4
/* 802737D8 00270718 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 802737DC 0027071C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 802737E0 00270720 90 61 00 2C */ stw r3, 0x2c(r1)
/* 802737E4 00270724 90 01 00 30 */ stw r0, 0x30(r1)
/* 802737E8 00270728 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 802737EC 0027072C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802737F0 00270730 FC 40 28 50 */ fneg f2, f5
/* 802737F4 00270734 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 802737F8 00270738 FC 60 20 50 */ fneg f3, f4
/* 802737FC 0027073C D0 61 00 30 */ stfs f3, 0x30(r1)
/* 80273800 00270740 FC 00 08 50 */ fneg f0, f1
/* 80273804 00270744 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 80273808 00270748 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8027380C 0027074C 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80273810 00270750 90 61 00 20 */ stw r3, 0x20(r1)
/* 80273814 00270754 90 01 00 24 */ stw r0, 0x24(r1)
/* 80273818 00270758 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 8027381C 0027075C 90 01 00 28 */ stw r0, 0x28(r1)
/* 80273820 00270760 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 80273824 00270764 D0 81 00 24 */ stfs f4, 0x24(r1)
/* 80273828 00270768 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8027382C 0027076C 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 80273830 00270770 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 80273834 00270774 90 61 00 14 */ stw r3, 0x14(r1)
/* 80273838 00270778 90 01 00 18 */ stw r0, 0x18(r1)
/* 8027383C 0027077C 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 80273840 00270780 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80273844 00270784 D0 A1 00 14 */ stfs f5, 0x14(r1)
/* 80273848 00270788 D0 81 00 18 */ stfs f4, 0x18(r1)
/* 8027384C 0027078C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80273850 00270790 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80273854 00270794 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 80273858 00270798 90 61 00 08 */ stw r3, 8(r1)
/* 8027385C 0027079C 90 01 00 0C */ stw r0, 0xc(r1)
/* 80273860 002707A0 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 80273864 002707A4 90 01 00 10 */ stw r0, 0x10(r1)
/* 80273868 002707A8 D0 A1 00 08 */ stfs f5, 8(r1)
/* 8027386C 002707AC D0 61 00 0C */ stfs f3, 0xc(r1)
/* 80273870 002707B0 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80273874 002707B4 38 61 00 20 */ addi r3, r1, 0x20
/* 80273878 002707B8 38 81 00 2C */ addi r4, r1, 0x2c
/* 8027387C 002707BC 38 BE 00 04 */ addi r5, r30, 4
/* 80273880 002707C0 48 0D 39 35 */ bl PSVECCrossProduct
/* 80273884 002707C4 38 61 00 14 */ addi r3, r1, 0x14
/* 80273888 002707C8 38 81 00 20 */ addi r4, r1, 0x20
/* 8027388C 002707CC 38 BE 00 10 */ addi r5, r30, 0x10
/* 80273890 002707D0 48 0D 39 25 */ bl PSVECCrossProduct
/* 80273894 002707D4 38 61 00 08 */ addi r3, r1, 8
/* 80273898 002707D8 38 81 00 14 */ addi r4, r1, 0x14
/* 8027389C 002707DC 38 BE 00 1C */ addi r5, r30, 0x1c
/* 802738A0 002707E0 48 0D 39 15 */ bl PSVECCrossProduct
/* 802738A4 002707E4 38 61 00 2C */ addi r3, r1, 0x2c
/* 802738A8 002707E8 38 81 00 08 */ addi r4, r1, 8
/* 802738AC 002707EC 38 BE 00 28 */ addi r5, r30, 0x28
/* 802738B0 002707F0 48 0D 39 05 */ bl PSVECCrossProduct
/* 802738B4 002707F4 38 7E 00 04 */ addi r3, r30, 4
/* 802738B8 002707F8 7C 64 1B 78 */ mr r4, r3
/* 802738BC 002707FC 48 0D 38 39 */ bl PSVECNormalize
/* 802738C0 00270800 38 7E 00 10 */ addi r3, r30, 0x10
/* 802738C4 00270804 7C 64 1B 78 */ mr r4, r3
/* 802738C8 00270808 48 0D 38 2D */ bl PSVECNormalize
/* 802738CC 0027080C 38 7E 00 1C */ addi r3, r30, 0x1c
/* 802738D0 00270810 7C 64 1B 78 */ mr r4, r3
/* 802738D4 00270814 48 0D 38 21 */ bl PSVECNormalize
/* 802738D8 00270818 38 7E 00 28 */ addi r3, r30, 0x28
/* 802738DC 0027081C 7C 64 1B 78 */ mr r4, r3
/* 802738E0 00270820 48 0D 38 15 */ bl PSVECNormalize
/* 802738E4 00270824 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802738E8 00270828 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 802738EC 0027082C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802738F0 00270830 7C 08 03 A6 */ mtlr r0
/* 802738F4 00270834 38 21 00 40 */ addi r1, r1, 0x40
/* 802738F8 00270838 4E 80 00 20 */ blr
.global J3DUClipper_NS_clip
J3DUClipper_NS_clip:
/* 802738FC 0027083C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80273900 00270840 7C 08 02 A6 */ mflr r0
/* 80273904 00270844 90 01 00 34 */ stw r0, 0x34(r1)
/* 80273908 00270848 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8027390C 0027084C F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 80273910 00270850 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80273914 00270854 7C 7F 1B 78 */ mr r31, r3
/* 80273918 00270858 FF E0 08 90 */ fmr f31, f1
/* 8027391C 0027085C 7C 83 23 78 */ mr r3, r4
/* 80273920 00270860 7C A4 2B 78 */ mr r4, r5
/* 80273924 00270864 38 A1 00 08 */ addi r5, r1, 8
/* 80273928 00270868 48 0D 34 45 */ bl PSMTXMultVec
/* 8027392C 0027086C C0 61 00 10 */ lfs f3, 0x10(r1)
/* 80273930 00270870 FC 20 18 50 */ fneg f1, f3
/* 80273934 00270874 C0 1F 00 54 */ lfs f0, 0x54(r31)
/* 80273938 00270878 EC 00 F8 28 */ fsubs f0, f0, f31
/* 8027393C 0027087C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80273940 00270880 40 80 00 0C */ bge lbl_8027394C
/* 80273944 00270884 38 60 00 01 */ li r3, 1
/* 80273948 00270888 48 00 00 E0 */ b lbl_80273A28
lbl_8027394C:
/* 8027394C 0027088C C0 1F 00 58 */ lfs f0, 0x58(r31)
/* 80273950 00270890 EC 00 F8 2A */ fadds f0, f0, f31
/* 80273954 00270894 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80273958 00270898 40 81 00 0C */ ble lbl_80273964
/* 8027395C 0027089C 38 60 00 01 */ li r3, 1
/* 80273960 002708A0 48 00 00 C8 */ b lbl_80273A28
lbl_80273964:
/* 80273964 002708A4 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 80273968 002708A8 EC 43 00 32 */ fmuls f2, f3, f0
/* 8027396C 002708AC C0 A1 00 08 */ lfs f5, 8(r1)
/* 80273970 002708B0 C0 1F 00 04 */ lfs f0, 4(r31)
/* 80273974 002708B4 EC 25 00 32 */ fmuls f1, f5, f0
/* 80273978 002708B8 C0 81 00 0C */ lfs f4, 0xc(r1)
/* 8027397C 002708BC C0 1F 00 08 */ lfs f0, 8(r31)
/* 80273980 002708C0 EC 04 00 32 */ fmuls f0, f4, f0
/* 80273984 002708C4 EC 01 00 2A */ fadds f0, f1, f0
/* 80273988 002708C8 EC 02 00 2A */ fadds f0, f2, f0
/* 8027398C 002708CC FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80273990 002708D0 40 81 00 0C */ ble lbl_8027399C
/* 80273994 002708D4 38 60 00 01 */ li r3, 1
/* 80273998 002708D8 48 00 00 90 */ b lbl_80273A28
lbl_8027399C:
/* 8027399C 002708DC C0 1F 00 18 */ lfs f0, 0x18(r31)
/* 802739A0 002708E0 EC 43 00 32 */ fmuls f2, f3, f0
/* 802739A4 002708E4 C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 802739A8 002708E8 EC 25 00 32 */ fmuls f1, f5, f0
/* 802739AC 002708EC C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 802739B0 002708F0 EC 04 00 32 */ fmuls f0, f4, f0
/* 802739B4 002708F4 EC 01 00 2A */ fadds f0, f1, f0
/* 802739B8 002708F8 EC 02 00 2A */ fadds f0, f2, f0
/* 802739BC 002708FC FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 802739C0 00270900 40 81 00 0C */ ble lbl_802739CC
/* 802739C4 00270904 38 60 00 01 */ li r3, 1
/* 802739C8 00270908 48 00 00 60 */ b lbl_80273A28
lbl_802739CC:
/* 802739CC 0027090C C0 1F 00 24 */ lfs f0, 0x24(r31)
/* 802739D0 00270910 EC 43 00 32 */ fmuls f2, f3, f0
/* 802739D4 00270914 C0 1F 00 1C */ lfs f0, 0x1c(r31)
/* 802739D8 00270918 EC 25 00 32 */ fmuls f1, f5, f0
/* 802739DC 0027091C C0 1F 00 20 */ lfs f0, 0x20(r31)
/* 802739E0 00270920 EC 04 00 32 */ fmuls f0, f4, f0
/* 802739E4 00270924 EC 01 00 2A */ fadds f0, f1, f0
/* 802739E8 00270928 EC 02 00 2A */ fadds f0, f2, f0
/* 802739EC 0027092C FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 802739F0 00270930 40 81 00 0C */ ble lbl_802739FC
/* 802739F4 00270934 38 60 00 01 */ li r3, 1
/* 802739F8 00270938 48 00 00 30 */ b lbl_80273A28
lbl_802739FC:
/* 802739FC 0027093C C0 1F 00 30 */ lfs f0, 0x30(r31)
/* 80273A00 00270940 EC 43 00 32 */ fmuls f2, f3, f0
/* 80273A04 00270944 C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 80273A08 00270948 EC 25 00 32 */ fmuls f1, f5, f0
/* 80273A0C 0027094C C0 1F 00 2C */ lfs f0, 0x2c(r31)
/* 80273A10 00270950 EC 04 00 32 */ fmuls f0, f4, f0
/* 80273A14 00270954 EC 01 00 2A */ fadds f0, f1, f0
/* 80273A18 00270958 EC 02 00 2A */ fadds f0, f2, f0
/* 80273A1C 0027095C FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80273A20 00270960 7C 00 00 26 */ mfcr r0
/* 80273A24 00270964 54 03 17 FE */ rlwinm r3, r0, 2, 0x1f, 0x1f
lbl_80273A28:
/* 80273A28 00270968 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 80273A2C 0027096C CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80273A30 00270970 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80273A34 00270974 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80273A38 00270978 7C 08 03 A6 */ mtlr r0
/* 80273A3C 0027097C 38 21 00 30 */ addi r1, r1, 0x30
/* 80273A40 00270980 4E 80 00 20 */ blr
.global J3DUClipper_NS_clip_X1_
J3DUClipper_NS_clip_X1_:
/* 80273A44 00270984 94 21 FE 70 */ stwu r1, -0x190(r1)
/* 80273A48 00270988 7C 08 02 A6 */ mflr r0
/* 80273A4C 0027098C 90 01 01 94 */ stw r0, 0x194(r1)
/* 80273A50 00270990 DB E1 01 80 */ stfd f31, 0x180(r1)
/* 80273A54 00270994 F3 E1 01 88 */ psq_st f31, 392(r1), 0, qr0
/* 80273A58 00270998 DB C1 01 70 */ stfd f30, 0x170(r1)
/* 80273A5C 0027099C F3 C1 01 78 */ psq_st f30, 376(r1), 0, qr0
/* 80273A60 002709A0 DB A1 01 60 */ stfd f29, 0x160(r1)
/* 80273A64 002709A4 F3 A1 01 68 */ psq_st f29, 360(r1), 0, qr0
/* 80273A68 002709A8 DB 81 01 50 */ stfd f28, 0x150(r1)
/* 80273A6C 002709AC F3 81 01 58 */ psq_st f28, 344(r1), 0, qr0
/* 80273A70 002709B0 DB 61 01 40 */ stfd f27, 0x140(r1)
/* 80273A74 002709B4 F3 61 01 48 */ psq_st f27, 328(r1), 0, qr0
/* 80273A78 002709B8 DB 41 01 30 */ stfd f26, 0x130(r1)
/* 80273A7C 002709BC F3 41 01 38 */ psq_st f26, 312(r1), 0, qr0
/* 80273A80 002709C0 DB 21 01 20 */ stfd f25, 0x120(r1)
/* 80273A84 002709C4 F3 21 01 28 */ psq_st f25, 296(r1), 0, qr0
/* 80273A88 002709C8 DB 01 01 10 */ stfd f24, 0x110(r1)
/* 80273A8C 002709CC F3 01 01 18 */ psq_st f24, 280(r1), 0, qr0
/* 80273A90 002709D0 DA E1 01 00 */ stfd f23, 0x100(r1)
/* 80273A94 002709D4 F2 E1 01 08 */ psq_st f23, 264(r1), 0, qr0
/* 80273A98 002709D8 DA C1 00 F0 */ stfd f22, 0xf0(r1)
/* 80273A9C 002709DC F2 C1 00 F8 */ psq_st f22, 248(r1), 0, qr0
/* 80273AA0 002709E0 DA A1 00 E0 */ stfd f21, 0xe0(r1)
/* 80273AA4 002709E4 F2 A1 00 E8 */ psq_st f21, 232(r1), 0, qr0
/* 80273AA8 002709E8 DA 81 00 D0 */ stfd f20, 0xd0(r1)
/* 80273AAC 002709EC F2 81 00 D8 */ psq_st f20, 216(r1), 0, qr0
/* 80273AB0 002709F0 DA 61 00 C0 */ stfd f19, 0xc0(r1)
/* 80273AB4 002709F4 F2 61 00 C8 */ psq_st f19, 200(r1), 0, qr0
/* 80273AB8 002709F8 DA 41 00 B0 */ stfd f18, 0xb0(r1)
/* 80273ABC 002709FC F2 41 00 B8 */ psq_st f18, 184(r1), 0, qr0
/* 80273AC0 00270A00 DA 21 00 A0 */ stfd f17, 0xa0(r1)
/* 80273AC4 00270A04 F2 21 00 A8 */ psq_st f17, 168(r1), 0, qr0
/* 80273AC8 00270A08 39 61 00 A0 */ addi r11, r1, 0xa0
/* 80273ACC 00270A0C 48 0E E7 11 */ bl _savegpr_29
/* 80273AD0 00270A10 7C 9F 23 78 */ mr r31, r4
/* 80273AD4 00270A14 38 80 00 00 */ li r4, 0
/* 80273AD8 00270A18 7C 88 23 78 */ mr r8, r4
/* 80273ADC 00270A1C 38 E1 00 14 */ addi r7, r1, 0x14
/* 80273AE0 00270A20 38 00 00 06 */ li r0, 6
/* 80273AE4 00270A24 7C 09 03 A6 */ mtctr r0
lbl_80273AE8:
/* 80273AE8 00270A28 7D 07 21 2E */ stwx r8, r7, r4
/* 80273AEC 00270A2C 38 84 00 04 */ addi r4, r4, 4
/* 80273AF0 00270A30 42 00 FF F8 */ bdnz lbl_80273AE8
/* 80273AF4 00270A34 C0 86 00 00 */ lfs f4, 0(r6)
/* 80273AF8 00270A38 D0 81 00 2C */ stfs f4, 0x2c(r1)
/* 80273AFC 00270A3C C0 06 00 04 */ lfs f0, 4(r6)
/* 80273B00 00270A40 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80273B04 00270A44 C0 65 00 08 */ lfs f3, 8(r5)
/* 80273B08 00270A48 D0 61 00 34 */ stfs f3, 0x34(r1)
/* 80273B0C 00270A4C D0 81 00 38 */ stfs f4, 0x38(r1)
/* 80273B10 00270A50 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 80273B14 00270A54 C0 46 00 08 */ lfs f2, 8(r6)
/* 80273B18 00270A58 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 80273B1C 00270A5C C0 25 00 00 */ lfs f1, 0(r5)
/* 80273B20 00270A60 D0 21 00 44 */ stfs f1, 0x44(r1)
/* 80273B24 00270A64 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 80273B28 00270A68 D0 41 00 4C */ stfs f2, 0x4c(r1)
/* 80273B2C 00270A6C D0 21 00 50 */ stfs f1, 0x50(r1)
/* 80273B30 00270A70 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 80273B34 00270A74 D0 61 00 58 */ stfs f3, 0x58(r1)
/* 80273B38 00270A78 D0 81 00 5C */ stfs f4, 0x5c(r1)
/* 80273B3C 00270A7C C0 05 00 04 */ lfs f0, 4(r5)
/* 80273B40 00270A80 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 80273B44 00270A84 D0 61 00 64 */ stfs f3, 0x64(r1)
/* 80273B48 00270A88 D0 81 00 68 */ stfs f4, 0x68(r1)
/* 80273B4C 00270A8C D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 80273B50 00270A90 D0 41 00 70 */ stfs f2, 0x70(r1)
/* 80273B54 00270A94 D0 21 00 74 */ stfs f1, 0x74(r1)
/* 80273B58 00270A98 D0 01 00 78 */ stfs f0, 0x78(r1)
/* 80273B5C 00270A9C D0 41 00 7C */ stfs f2, 0x7c(r1)
/* 80273B60 00270AA0 D0 21 00 80 */ stfs f1, 0x80(r1)
/* 80273B64 00270AA4 D0 01 00 84 */ stfs f0, 0x84(r1)
/* 80273B68 00270AA8 D0 61 00 88 */ stfs f3, 0x88(r1)
/* 80273B6C 00270AAC 3B A0 00 00 */ li r29, 0
/* 80273B70 00270AB0 3B C0 00 00 */ li r30, 0
/* 80273B74 00270AB4 C2 43 00 54 */ lfs f18, 0x54(r3)
/* 80273B78 00270AB8 C2 63 00 58 */ lfs f19, 0x58(r3)
/* 80273B7C 00270ABC C2 83 00 0C */ lfs f20, 0xc(r3)
/* 80273B80 00270AC0 C2 A3 00 04 */ lfs f21, 4(r3)
/* 80273B84 00270AC4 C2 C3 00 08 */ lfs f22, 8(r3)
/* 80273B88 00270AC8 C2 E2 B8 88 */ lfs f23, lbl_80455288-_SDA2_BASE_(r2)
/* 80273B8C 00270ACC C3 03 00 18 */ lfs f24, 0x18(r3)
/* 80273B90 00270AD0 C3 23 00 10 */ lfs f25, 0x10(r3)
/* 80273B94 00270AD4 C3 43 00 14 */ lfs f26, 0x14(r3)
/* 80273B98 00270AD8 C3 63 00 24 */ lfs f27, 0x24(r3)
/* 80273B9C 00270ADC C3 83 00 1C */ lfs f28, 0x1c(r3)
/* 80273BA0 00270AE0 C3 A3 00 20 */ lfs f29, 0x20(r3)
/* 80273BA4 00270AE4 C3 C3 00 30 */ lfs f30, 0x30(r3)
/* 80273BA8 00270AE8 C3 E3 00 28 */ lfs f31, 0x28(r3)
/* 80273BAC 00270AEC C2 23 00 2C */ lfs f17, 0x2c(r3)
lbl_80273BB0:
/* 80273BB0 00270AF0 7F E3 FB 78 */ mr r3, r31
/* 80273BB4 00270AF4 38 81 00 2C */ addi r4, r1, 0x2c
/* 80273BB8 00270AF8 7C 84 F2 14 */ add r4, r4, r30
/* 80273BBC 00270AFC 38 A1 00 08 */ addi r5, r1, 8
/* 80273BC0 00270B00 48 0D 31 AD */ bl PSMTXMultVec
/* 80273BC4 00270B04 38 80 00 00 */ li r4, 0
/* 80273BC8 00270B08 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80273BCC 00270B0C FC 00 00 50 */ fneg f0, f0
/* 80273BD0 00270B10 FC 00 90 40 */ fcmpo cr0, f0, f18
/* 80273BD4 00270B14 40 80 00 14 */ bge lbl_80273BE8
/* 80273BD8 00270B18 80 61 00 24 */ lwz r3, 0x24(r1)
/* 80273BDC 00270B1C 38 03 00 01 */ addi r0, r3, 1
/* 80273BE0 00270B20 90 01 00 24 */ stw r0, 0x24(r1)
/* 80273BE4 00270B24 38 80 00 01 */ li r4, 1
lbl_80273BE8:
/* 80273BE8 00270B28 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80273BEC 00270B2C FC 00 00 50 */ fneg f0, f0
/* 80273BF0 00270B30 FC 00 98 40 */ fcmpo cr0, f0, f19
/* 80273BF4 00270B34 40 81 00 14 */ ble lbl_80273C08
/* 80273BF8 00270B38 80 61 00 28 */ lwz r3, 0x28(r1)
/* 80273BFC 00270B3C 38 03 00 01 */ addi r0, r3, 1
/* 80273C00 00270B40 90 01 00 28 */ stw r0, 0x28(r1)
/* 80273C04 00270B44 38 84 00 01 */ addi r4, r4, 1
lbl_80273C08:
/* 80273C08 00270B48 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80273C0C 00270B4C EC 40 05 32 */ fmuls f2, f0, f20
/* 80273C10 00270B50 C0 61 00 08 */ lfs f3, 8(r1)
/* 80273C14 00270B54 EC 23 05 72 */ fmuls f1, f3, f21
/* 80273C18 00270B58 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80273C1C 00270B5C EC 00 05 B2 */ fmuls f0, f0, f22
/* 80273C20 00270B60 EC 01 00 2A */ fadds f0, f1, f0
/* 80273C24 00270B64 EC 02 00 2A */ fadds f0, f2, f0
/* 80273C28 00270B68 FC 00 B8 40 */ fcmpo cr0, f0, f23
/* 80273C2C 00270B6C 40 81 00 14 */ ble lbl_80273C40
/* 80273C30 00270B70 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80273C34 00270B74 38 03 00 01 */ addi r0, r3, 1
/* 80273C38 00270B78 90 01 00 14 */ stw r0, 0x14(r1)
/* 80273C3C 00270B7C 38 84 00 01 */ addi r4, r4, 1
lbl_80273C40:
/* 80273C40 00270B80 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80273C44 00270B84 EC 40 06 32 */ fmuls f2, f0, f24
/* 80273C48 00270B88 EC 23 06 72 */ fmuls f1, f3, f25
/* 80273C4C 00270B8C C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80273C50 00270B90 EC 00 06 B2 */ fmuls f0, f0, f26
/* 80273C54 00270B94 EC 01 00 2A */ fadds f0, f1, f0
/* 80273C58 00270B98 EC 02 00 2A */ fadds f0, f2, f0
/* 80273C5C 00270B9C FC 00 B8 40 */ fcmpo cr0, f0, f23
/* 80273C60 00270BA0 40 81 00 14 */ ble lbl_80273C74
/* 80273C64 00270BA4 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80273C68 00270BA8 38 03 00 01 */ addi r0, r3, 1
/* 80273C6C 00270BAC 90 01 00 18 */ stw r0, 0x18(r1)
/* 80273C70 00270BB0 38 84 00 01 */ addi r4, r4, 1
lbl_80273C74:
/* 80273C74 00270BB4 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80273C78 00270BB8 EC 40 06 F2 */ fmuls f2, f0, f27
/* 80273C7C 00270BBC C0 01 00 08 */ lfs f0, 8(r1)
/* 80273C80 00270BC0 EC 20 07 32 */ fmuls f1, f0, f28
/* 80273C84 00270BC4 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80273C88 00270BC8 EC 00 07 72 */ fmuls f0, f0, f29
/* 80273C8C 00270BCC EC 01 00 2A */ fadds f0, f1, f0
/* 80273C90 00270BD0 EC 02 00 2A */ fadds f0, f2, f0
/* 80273C94 00270BD4 FC 00 B8 40 */ fcmpo cr0, f0, f23
/* 80273C98 00270BD8 40 81 00 14 */ ble lbl_80273CAC
/* 80273C9C 00270BDC 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80273CA0 00270BE0 38 03 00 01 */ addi r0, r3, 1
/* 80273CA4 00270BE4 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80273CA8 00270BE8 38 84 00 01 */ addi r4, r4, 1
lbl_80273CAC:
/* 80273CAC 00270BEC C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80273CB0 00270BF0 EC 40 07 B2 */ fmuls f2, f0, f30
/* 80273CB4 00270BF4 C0 01 00 08 */ lfs f0, 8(r1)
/* 80273CB8 00270BF8 EC 20 07 F2 */ fmuls f1, f0, f31
/* 80273CBC 00270BFC C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80273CC0 00270C00 EC 00 04 72 */ fmuls f0, f0, f17
/* 80273CC4 00270C04 EC 01 00 2A */ fadds f0, f1, f0
/* 80273CC8 00270C08 EC 02 00 2A */ fadds f0, f2, f0
/* 80273CCC 00270C0C FC 00 B8 40 */ fcmpo cr0, f0, f23
/* 80273CD0 00270C10 40 81 00 14 */ ble lbl_80273CE4
/* 80273CD4 00270C14 80 61 00 20 */ lwz r3, 0x20(r1)
/* 80273CD8 00270C18 38 03 00 01 */ addi r0, r3, 1
/* 80273CDC 00270C1C 90 01 00 20 */ stw r0, 0x20(r1)
/* 80273CE0 00270C20 38 84 00 01 */ addi r4, r4, 1
lbl_80273CE4:
/* 80273CE4 00270C24 2C 04 00 00 */ cmpwi r4, 0
/* 80273CE8 00270C28 40 82 00 0C */ bne lbl_80273CF4
/* 80273CEC 00270C2C 38 60 00 00 */ li r3, 0
/* 80273CF0 00270C30 48 00 00 88 */ b lbl_80273D78
lbl_80273CF4:
/* 80273CF4 00270C34 3B BD 00 01 */ addi r29, r29, 1
/* 80273CF8 00270C38 28 1D 00 08 */ cmplwi r29, 8
/* 80273CFC 00270C3C 3B DE 00 0C */ addi r30, r30, 0xc
/* 80273D00 00270C40 41 80 FE B0 */ blt lbl_80273BB0
/* 80273D04 00270C44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80273D08 00270C48 2C 00 00 08 */ cmpwi r0, 8
/* 80273D0C 00270C4C 40 82 00 0C */ bne lbl_80273D18
/* 80273D10 00270C50 38 60 00 01 */ li r3, 1
/* 80273D14 00270C54 48 00 00 64 */ b lbl_80273D78
lbl_80273D18:
/* 80273D18 00270C58 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80273D1C 00270C5C 2C 00 00 08 */ cmpwi r0, 8
/* 80273D20 00270C60 40 82 00 0C */ bne lbl_80273D2C
/* 80273D24 00270C64 38 60 00 01 */ li r3, 1
/* 80273D28 00270C68 48 00 00 50 */ b lbl_80273D78
lbl_80273D2C:
/* 80273D2C 00270C6C 80 01 00 18 */ lwz r0, 0x18(r1)
/* 80273D30 00270C70 2C 00 00 08 */ cmpwi r0, 8
/* 80273D34 00270C74 40 82 00 0C */ bne lbl_80273D40
/* 80273D38 00270C78 38 60 00 01 */ li r3, 1
/* 80273D3C 00270C7C 48 00 00 3C */ b lbl_80273D78
lbl_80273D40:
/* 80273D40 00270C80 80 01 00 20 */ lwz r0, 0x20(r1)
/* 80273D44 00270C84 2C 00 00 08 */ cmpwi r0, 8
/* 80273D48 00270C88 40 82 00 0C */ bne lbl_80273D54
/* 80273D4C 00270C8C 38 60 00 01 */ li r3, 1
/* 80273D50 00270C90 48 00 00 28 */ b lbl_80273D78
lbl_80273D54:
/* 80273D54 00270C94 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80273D58 00270C98 2C 00 00 08 */ cmpwi r0, 8
/* 80273D5C 00270C9C 40 82 00 0C */ bne lbl_80273D68
/* 80273D60 00270CA0 38 60 00 01 */ li r3, 1
/* 80273D64 00270CA4 48 00 00 14 */ b lbl_80273D78
lbl_80273D68:
/* 80273D68 00270CA8 80 01 00 28 */ lwz r0, 0x28(r1)
/* 80273D6C 00270CAC 20 00 00 08 */ subfic r0, r0, 8
/* 80273D70 00270CB0 7C 00 00 34 */ cntlzw r0, r0
/* 80273D74 00270CB4 54 03 D9 7E */ srwi r3, r0, 5
lbl_80273D78:
/* 80273D78 00270CB8 E3 E1 01 88 */ psq_l f31, 392(r1), 0, qr0
/* 80273D7C 00270CBC CB E1 01 80 */ lfd f31, 0x180(r1)
/* 80273D80 00270CC0 E3 C1 01 78 */ psq_l f30, 376(r1), 0, qr0
/* 80273D84 00270CC4 CB C1 01 70 */ lfd f30, 0x170(r1)
/* 80273D88 00270CC8 E3 A1 01 68 */ psq_l f29, 360(r1), 0, qr0
/* 80273D8C 00270CCC CB A1 01 60 */ lfd f29, 0x160(r1)
/* 80273D90 00270CD0 E3 81 01 58 */ psq_l f28, 344(r1), 0, qr0
/* 80273D94 00270CD4 CB 81 01 50 */ lfd f28, 0x150(r1)
/* 80273D98 00270CD8 E3 61 01 48 */ psq_l f27, 328(r1), 0, qr0
/* 80273D9C 00270CDC CB 61 01 40 */ lfd f27, 0x140(r1)
/* 80273DA0 00270CE0 E3 41 01 38 */ psq_l f26, 312(r1), 0, qr0
/* 80273DA4 00270CE4 CB 41 01 30 */ lfd f26, 0x130(r1)
/* 80273DA8 00270CE8 E3 21 01 28 */ psq_l f25, 296(r1), 0, qr0
/* 80273DAC 00270CEC CB 21 01 20 */ lfd f25, 0x120(r1)
/* 80273DB0 00270CF0 E3 01 01 18 */ psq_l f24, 280(r1), 0, qr0
/* 80273DB4 00270CF4 CB 01 01 10 */ lfd f24, 0x110(r1)
/* 80273DB8 00270CF8 E2 E1 01 08 */ psq_l f23, 264(r1), 0, qr0
/* 80273DBC 00270CFC CA E1 01 00 */ lfd f23, 0x100(r1)
/* 80273DC0 00270D00 E2 C1 00 F8 */ psq_l f22, 248(r1), 0, qr0
/* 80273DC4 00270D04 CA C1 00 F0 */ lfd f22, 0xf0(r1)
/* 80273DC8 00270D08 E2 A1 00 E8 */ psq_l f21, 232(r1), 0, qr0
/* 80273DCC 00270D0C CA A1 00 E0 */ lfd f21, 0xe0(r1)
/* 80273DD0 00270D10 E2 81 00 D8 */ psq_l f20, 216(r1), 0, qr0
/* 80273DD4 00270D14 CA 81 00 D0 */ lfd f20, 0xd0(r1)
/* 80273DD8 00270D18 E2 61 00 C8 */ psq_l f19, 200(r1), 0, qr0
/* 80273DDC 00270D1C CA 61 00 C0 */ lfd f19, 0xc0(r1)
/* 80273DE0 00270D20 E2 41 00 B8 */ psq_l f18, 184(r1), 0, qr0
/* 80273DE4 00270D24 CA 41 00 B0 */ lfd f18, 0xb0(r1)
/* 80273DE8 00270D28 E2 21 00 A8 */ psq_l f17, 168(r1), 0, qr0
/* 80273DEC 00270D2C CA 21 00 A0 */ lfd f17, 0xa0(r1)
/* 80273DF0 00270D30 39 61 00 A0 */ addi r11, r1, 0xa0
/* 80273DF4 00270D34 48 0E E4 35 */ bl _restgpr_29
/* 80273DF8 00270D38 80 01 01 94 */ lwz r0, 0x194(r1)
/* 80273DFC 00270D3C 7C 08 03 A6 */ mtlr r0
/* 80273E00 00270D40 38 21 01 90 */ addi r1, r1, 0x190
/* 80273E04 00270D44 4E 80 00 20 */ blr