tp/asm/SComponent/c/c_m2d.s

227 lines
11 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 80268260
.global cM2d_CrossCirLin
cM2d_CrossCirLin:
/* 80268260 002651A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80268264 002651A4 C0 03 00 00 */ lfs f0, 0(r3)
/* 80268268 002651A8 EC E1 00 28 */ fsubs f7, f1, f0
/* 8026826C 002651AC C0 03 00 04 */ lfs f0, 4(r3)
/* 80268270 002651B0 ED 02 00 28 */ fsubs f8, f2, f0
/* 80268274 002651B4 EC C3 00 F2 */ fmuls f6, f3, f3
/* 80268278 002651B8 EC 04 01 32 */ fmuls f0, f4, f4
/* 8026827C 002651BC ED 46 00 2A */ fadds f10, f6, f0
/* 80268280 002651C0 C1 22 B6 F0 */ lfs f9, lbl_804550F0-_SDA2_BASE_(r2)
/* 80268284 002651C4 EC C3 01 F2 */ fmuls f6, f3, f7
/* 80268288 002651C8 EC 04 02 32 */ fmuls f0, f4, f8
/* 8026828C 002651CC EC 06 00 2A */ fadds f0, f6, f0
/* 80268290 002651D0 EC 09 00 32 */ fmuls f0, f9, f0
/* 80268294 002651D4 EC E7 01 F2 */ fmuls f7, f7, f7
/* 80268298 002651D8 EC C8 02 32 */ fmuls f6, f8, f8
/* 8026829C 002651DC EC E7 30 2A */ fadds f7, f7, f6
/* 802682A0 002651E0 C0 C3 00 08 */ lfs f6, 8(r3)
/* 802682A4 002651E4 EC C6 01 B2 */ fmuls f6, f6, f6
/* 802682A8 002651E8 ED 67 30 28 */ fsubs f11, f7, f6
/* 802682AC 002651EC FC C0 52 10 */ fabs f6, f10
/* 802682B0 002651F0 FC C0 30 18 */ frsp f6, f6
/* 802682B4 002651F4 C1 0D 8C 00 */ lfs f8, lbl_80451180-_SDA_BASE_(r13)
/* 802682B8 002651F8 FC 06 40 40 */ fcmpo cr0, f6, f8
/* 802682BC 002651FC 40 80 00 20 */ bge lbl_802682DC
/* 802682C0 00265200 FC C0 02 10 */ fabs f6, f0
/* 802682C4 00265204 FC C0 30 18 */ frsp f6, f6
/* 802682C8 00265208 FC 06 40 40 */ fcmpo cr0, f6, f8
/* 802682CC 0026520C 41 80 02 54 */ blt lbl_80268520
/* 802682D0 00265210 FC A0 58 50 */ fneg f5, f11
/* 802682D4 00265214 EC A5 00 24 */ fdivs f5, f5, f0
/* 802682D8 00265218 48 00 02 48 */ b lbl_80268520
lbl_802682DC:
/* 802682DC 0026521C EC E0 00 32 */ fmuls f7, f0, f0
/* 802682E0 00265220 C0 C2 B6 F4 */ lfs f6, lbl_804550F4-_SDA2_BASE_(r2)
/* 802682E4 00265224 EC C6 02 B2 */ fmuls f6, f6, f10
/* 802682E8 00265228 EC C6 02 F2 */ fmuls f6, f6, f11
/* 802682EC 0026522C EC C7 30 28 */ fsubs f6, f7, f6
/* 802682F0 00265230 FC E0 32 10 */ fabs f7, f6
/* 802682F4 00265234 FC E0 38 18 */ frsp f7, f7
/* 802682F8 00265238 FC 07 40 40 */ fcmpo cr0, f7, f8
/* 802682FC 0026523C 40 80 00 14 */ bge lbl_80268310
/* 80268300 00265240 FC A0 00 50 */ fneg f5, f0
/* 80268304 00265244 EC 09 02 B2 */ fmuls f0, f9, f10
/* 80268308 00265248 EC A5 00 24 */ fdivs f5, f5, f0
/* 8026830C 0026524C 48 00 02 14 */ b lbl_80268520
lbl_80268310:
/* 80268310 00265250 C0 E2 B6 F8 */ lfs f7, lbl_804550F8-_SDA2_BASE_(r2)
/* 80268314 00265254 FC 06 38 40 */ fcmpo cr0, f6, f7
/* 80268318 00265258 41 80 02 08 */ blt lbl_80268520
/* 8026831C 0026525C C0 E2 B6 FC */ lfs f7, lbl_804550FC-_SDA2_BASE_(r2)
/* 80268320 00265260 EC A9 02 B2 */ fmuls f5, f9, f10
/* 80268324 00265264 EC A7 28 24 */ fdivs f5, f7, f5
/* 80268328 00265268 40 81 00 58 */ ble lbl_80268380
/* 8026832C 0026526C FC E0 30 34 */ frsqrte f7, f6
/* 80268330 00265270 C9 42 B7 00 */ lfd f10, lbl_80455100-_SDA2_BASE_(r2)
/* 80268334 00265274 FD 0A 01 F2 */ fmul f8, f10, f7
/* 80268338 00265278 C9 22 B7 08 */ lfd f9, lbl_80455108-_SDA2_BASE_(r2)
/* 8026833C 0026527C FC E7 01 F2 */ fmul f7, f7, f7
/* 80268340 00265280 FC E6 01 F2 */ fmul f7, f6, f7
/* 80268344 00265284 FC E9 38 28 */ fsub f7, f9, f7
/* 80268348 00265288 FC E8 01 F2 */ fmul f7, f8, f7
/* 8026834C 0026528C FD 0A 01 F2 */ fmul f8, f10, f7
/* 80268350 00265290 FC E7 01 F2 */ fmul f7, f7, f7
/* 80268354 00265294 FC E6 01 F2 */ fmul f7, f6, f7
/* 80268358 00265298 FC E9 38 28 */ fsub f7, f9, f7
/* 8026835C 0026529C FC E8 01 F2 */ fmul f7, f8, f7
/* 80268360 002652A0 FD 0A 01 F2 */ fmul f8, f10, f7
/* 80268364 002652A4 FC E7 01 F2 */ fmul f7, f7, f7
/* 80268368 002652A8 FC E6 01 F2 */ fmul f7, f6, f7
/* 8026836C 002652AC FC E9 38 28 */ fsub f7, f9, f7
/* 80268370 002652B0 FC E8 01 F2 */ fmul f7, f8, f7
/* 80268374 002652B4 FC E6 01 F2 */ fmul f7, f6, f7
/* 80268378 002652B8 FC E0 38 18 */ frsp f7, f7
/* 8026837C 002652BC 48 00 00 90 */ b lbl_8026840C
lbl_80268380:
/* 80268380 002652C0 C8 E2 B7 10 */ lfd f7, lbl_80455110-_SDA2_BASE_(r2)
/* 80268384 002652C4 FC 06 38 40 */ fcmpo cr0, f6, f7
/* 80268388 002652C8 40 80 00 10 */ bge lbl_80268398
/* 8026838C 002652CC 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
/* 80268390 002652D0 C0 E3 0A E0 */ lfs f7, lbl_80450AE0@l(r3)
/* 80268394 002652D4 48 00 00 78 */ b lbl_8026840C
lbl_80268398:
/* 80268398 002652D8 D0 C1 00 0C */ stfs f6, 0xc(r1)
/* 8026839C 002652DC 80 C1 00 0C */ lwz r6, 0xc(r1)
/* 802683A0 002652E0 54 C3 00 50 */ rlwinm r3, r6, 0, 1, 8
/* 802683A4 002652E4 3C 00 7F 80 */ lis r0, 0x7f80
/* 802683A8 002652E8 7C 03 00 00 */ cmpw r3, r0
/* 802683AC 002652EC 41 82 00 14 */ beq lbl_802683C0
/* 802683B0 002652F0 40 80 00 40 */ bge lbl_802683F0
/* 802683B4 002652F4 2C 03 00 00 */ cmpwi r3, 0
/* 802683B8 002652F8 41 82 00 20 */ beq lbl_802683D8
/* 802683BC 002652FC 48 00 00 34 */ b lbl_802683F0
lbl_802683C0:
/* 802683C0 00265300 54 C0 02 7F */ clrlwi. r0, r6, 9
/* 802683C4 00265304 41 82 00 0C */ beq lbl_802683D0
/* 802683C8 00265308 38 00 00 01 */ li r0, 1
/* 802683CC 0026530C 48 00 00 28 */ b lbl_802683F4
lbl_802683D0:
/* 802683D0 00265310 38 00 00 02 */ li r0, 2
/* 802683D4 00265314 48 00 00 20 */ b lbl_802683F4
lbl_802683D8:
/* 802683D8 00265318 54 C0 02 7F */ clrlwi. r0, r6, 9
/* 802683DC 0026531C 41 82 00 0C */ beq lbl_802683E8
/* 802683E0 00265320 38 00 00 05 */ li r0, 5
/* 802683E4 00265324 48 00 00 10 */ b lbl_802683F4
lbl_802683E8:
/* 802683E8 00265328 38 00 00 03 */ li r0, 3
/* 802683EC 0026532C 48 00 00 08 */ b lbl_802683F4
lbl_802683F0:
/* 802683F0 00265330 38 00 00 04 */ li r0, 4
lbl_802683F4:
/* 802683F4 00265334 2C 00 00 01 */ cmpwi r0, 1
/* 802683F8 00265338 40 82 00 10 */ bne lbl_80268408
/* 802683FC 0026533C 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
/* 80268400 00265340 C0 E3 0A E0 */ lfs f7, lbl_80450AE0@l(r3)
/* 80268404 00265344 48 00 00 08 */ b lbl_8026840C
lbl_80268408:
/* 80268408 00265348 FC E0 30 90 */ fmr f7, f6
lbl_8026840C:
/* 8026840C 0026534C FD 40 00 50 */ fneg f10, f0
/* 80268410 00265350 EC 0A 38 2A */ fadds f0, f10, f7
/* 80268414 00265354 ED 65 00 32 */ fmuls f11, f5, f0
/* 80268418 00265358 C0 02 B6 F8 */ lfs f0, lbl_804550F8-_SDA2_BASE_(r2)
/* 8026841C 0026535C FC 06 00 40 */ fcmpo cr0, f6, f0
/* 80268420 00265360 40 81 00 58 */ ble lbl_80268478
/* 80268424 00265364 FC 00 30 34 */ frsqrte f0, f6
/* 80268428 00265368 C9 22 B7 00 */ lfd f9, lbl_80455100-_SDA2_BASE_(r2)
/* 8026842C 0026536C FC E9 00 32 */ fmul f7, f9, f0
/* 80268430 00265370 C9 02 B7 08 */ lfd f8, lbl_80455108-_SDA2_BASE_(r2)
/* 80268434 00265374 FC 00 00 32 */ fmul f0, f0, f0
/* 80268438 00265378 FC 06 00 32 */ fmul f0, f6, f0
/* 8026843C 0026537C FC 08 00 28 */ fsub f0, f8, f0
/* 80268440 00265380 FC 07 00 32 */ fmul f0, f7, f0
/* 80268444 00265384 FC E9 00 32 */ fmul f7, f9, f0
/* 80268448 00265388 FC 00 00 32 */ fmul f0, f0, f0
/* 8026844C 0026538C FC 06 00 32 */ fmul f0, f6, f0
/* 80268450 00265390 FC 08 00 28 */ fsub f0, f8, f0
/* 80268454 00265394 FC 07 00 32 */ fmul f0, f7, f0
/* 80268458 00265398 FC E9 00 32 */ fmul f7, f9, f0
/* 8026845C 0026539C FC 00 00 32 */ fmul f0, f0, f0
/* 80268460 002653A0 FC 06 00 32 */ fmul f0, f6, f0
/* 80268464 002653A4 FC 08 00 28 */ fsub f0, f8, f0
/* 80268468 002653A8 FC 07 00 32 */ fmul f0, f7, f0
/* 8026846C 002653AC FC 06 00 32 */ fmul f0, f6, f0
/* 80268470 002653B0 FC 00 00 18 */ frsp f0, f0
/* 80268474 002653B4 48 00 00 90 */ b lbl_80268504
lbl_80268478:
/* 80268478 002653B8 C8 02 B7 10 */ lfd f0, lbl_80455110-_SDA2_BASE_(r2)
/* 8026847C 002653BC FC 06 00 40 */ fcmpo cr0, f6, f0
/* 80268480 002653C0 40 80 00 10 */ bge lbl_80268490
/* 80268484 002653C4 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
/* 80268488 002653C8 C0 03 0A E0 */ lfs f0, lbl_80450AE0@l(r3)
/* 8026848C 002653CC 48 00 00 78 */ b lbl_80268504
lbl_80268490:
/* 80268490 002653D0 D0 C1 00 08 */ stfs f6, 8(r1)
/* 80268494 002653D4 80 C1 00 08 */ lwz r6, 8(r1)
/* 80268498 002653D8 54 C3 00 50 */ rlwinm r3, r6, 0, 1, 8
/* 8026849C 002653DC 3C 00 7F 80 */ lis r0, 0x7f80
/* 802684A0 002653E0 7C 03 00 00 */ cmpw r3, r0
/* 802684A4 002653E4 41 82 00 14 */ beq lbl_802684B8
/* 802684A8 002653E8 40 80 00 40 */ bge lbl_802684E8
/* 802684AC 002653EC 2C 03 00 00 */ cmpwi r3, 0
/* 802684B0 002653F0 41 82 00 20 */ beq lbl_802684D0
/* 802684B4 002653F4 48 00 00 34 */ b lbl_802684E8
lbl_802684B8:
/* 802684B8 002653F8 54 C0 02 7F */ clrlwi. r0, r6, 9
/* 802684BC 002653FC 41 82 00 0C */ beq lbl_802684C8
/* 802684C0 00265400 38 00 00 01 */ li r0, 1
/* 802684C4 00265404 48 00 00 28 */ b lbl_802684EC
lbl_802684C8:
/* 802684C8 00265408 38 00 00 02 */ li r0, 2
/* 802684CC 0026540C 48 00 00 20 */ b lbl_802684EC
lbl_802684D0:
/* 802684D0 00265410 54 C0 02 7F */ clrlwi. r0, r6, 9
/* 802684D4 00265414 41 82 00 0C */ beq lbl_802684E0
/* 802684D8 00265418 38 00 00 05 */ li r0, 5
/* 802684DC 0026541C 48 00 00 10 */ b lbl_802684EC
lbl_802684E0:
/* 802684E0 00265420 38 00 00 03 */ li r0, 3
/* 802684E4 00265424 48 00 00 08 */ b lbl_802684EC
lbl_802684E8:
/* 802684E8 00265428 38 00 00 04 */ li r0, 4
lbl_802684EC:
/* 802684EC 0026542C 2C 00 00 01 */ cmpwi r0, 1
/* 802684F0 00265430 40 82 00 10 */ bne lbl_80268500
/* 802684F4 00265434 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
/* 802684F8 00265438 C0 03 0A E0 */ lfs f0, lbl_80450AE0@l(r3)
/* 802684FC 0026543C 48 00 00 08 */ b lbl_80268504
lbl_80268500:
/* 80268500 00265440 FC 00 30 90 */ fmr f0, f6
lbl_80268504:
/* 80268504 00265444 EC 0A 00 28 */ fsubs f0, f10, f0
/* 80268508 00265448 EC 05 00 32 */ fmuls f0, f5, f0
/* 8026850C 0026544C FC 0B 00 40 */ fcmpo cr0, f11, f0
/* 80268510 00265450 40 81 00 0C */ ble lbl_8026851C
/* 80268514 00265454 FC A0 58 90 */ fmr f5, f11
/* 80268518 00265458 48 00 00 08 */ b lbl_80268520
lbl_8026851C:
/* 8026851C 0026545C FC A0 00 90 */ fmr f5, f0
lbl_80268520:
/* 80268520 00265460 FC 00 2A 10 */ fabs f0, f5
/* 80268524 00265464 FC C0 00 18 */ frsp f6, f0
/* 80268528 00265468 C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
/* 8026852C 0026546C FC 06 00 40 */ fcmpo cr0, f6, f0
/* 80268530 00265470 40 80 00 10 */ bge lbl_80268540
/* 80268534 00265474 D0 24 00 00 */ stfs f1, 0(r4)
/* 80268538 00265478 D0 45 00 00 */ stfs f2, 0(r5)
/* 8026853C 0026547C 48 00 00 1C */ b lbl_80268558
lbl_80268540:
/* 80268540 00265480 EC 05 00 F2 */ fmuls f0, f5, f3
/* 80268544 00265484 EC 01 00 2A */ fadds f0, f1, f0
/* 80268548 00265488 D0 04 00 00 */ stfs f0, 0(r4)
/* 8026854C 0026548C EC 05 01 32 */ fmuls f0, f5, f4
/* 80268550 00265490 EC 02 00 2A */ fadds f0, f2, f0
/* 80268554 00265494 D0 05 00 00 */ stfs f0, 0(r5)
lbl_80268558:
/* 80268558 00265498 38 21 00 10 */ addi r1, r1, 0x10
/* 8026855C 0026549C 4E 80 00 20 */ blr