.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __ieee754_atan2 __ieee754_atan2: /* 801D1158 001CCDB8 94 21 FF D0 */ stwu r1, -0x30(r1) /* 801D115C 001CCDBC 7C 08 02 A6 */ mflr r0 /* 801D1160 001CCDC0 3C 60 7F F0 */ lis r3, 0x7ff0 /* 801D1164 001CCDC4 D8 41 00 10 */ stfd f2, 0x10(r1) /* 801D1168 001CCDC8 81 01 00 14 */ lwz r8, 0x14(r1) /* 801D116C 001CCDCC 90 01 00 34 */ stw r0, 0x34(r1) /* 801D1170 001CCDD0 7C 08 00 D0 */ neg r0, r8 /* 801D1174 001CCDD4 80 81 00 10 */ lwz r4, 0x10(r1) /* 801D1178 001CCDD8 7D 00 03 78 */ or r0, r8, r0 /* 801D117C 001CCDDC D8 21 00 08 */ stfd f1, 8(r1) /* 801D1180 001CCDE0 54 86 00 7E */ clrlwi r6, r4, 1 /* 801D1184 001CCDE4 54 00 0F FE */ srwi r0, r0, 0x1f /* 801D1188 001CCDE8 80 A1 00 08 */ lwz r5, 8(r1) /* 801D118C 001CCDEC 7C C0 03 78 */ or r0, r6, r0 /* 801D1190 001CCDF0 93 E1 00 2C */ stw r31, 0x2c(r1) /* 801D1194 001CCDF4 7C 00 18 40 */ cmplw r0, r3 /* 801D1198 001CCDF8 81 21 00 0C */ lwz r9, 0xc(r1) /* 801D119C 001CCDFC 54 A7 00 7E */ clrlwi r7, r5, 1 /* 801D11A0 001CCE00 41 81 00 1C */ bgt lbl_801D11BC /* 801D11A4 001CCE04 7C 09 00 D0 */ neg r0, r9 /* 801D11A8 001CCE08 7D 20 03 78 */ or r0, r9, r0 /* 801D11AC 001CCE0C 54 00 0F FE */ srwi r0, r0, 0x1f /* 801D11B0 001CCE10 7C E0 03 78 */ or r0, r7, r0 /* 801D11B4 001CCE14 7C 00 18 40 */ cmplw r0, r3 /* 801D11B8 001CCE18 40 81 00 0C */ ble lbl_801D11C4 lbl_801D11BC: /* 801D11BC 001CCE1C FC 22 08 2A */ fadd f1, f2, f1 /* 801D11C0 001CCE20 48 00 01 F4 */ b lbl_801D13B4 lbl_801D11C4: /* 801D11C4 001CCE24 3C 04 C0 10 */ addis r0, r4, 0xc010 /* 801D11C8 001CCE28 7C 00 43 79 */ or. r0, r0, r8 /* 801D11CC 001CCE2C 40 82 00 0C */ bne lbl_801D11D8 /* 801D11D0 001CCE30 48 00 2C 3D */ bl atan /* 801D11D4 001CCE34 48 00 01 E0 */ b lbl_801D13B4 lbl_801D11D8: /* 801D11D8 001CCE38 7C E0 4B 79 */ or. r0, r7, r9 /* 801D11DC 001CCE3C 54 9F 17 BC */ rlwinm r31, r4, 2, 0x1e, 0x1e /* 801D11E0 001CCE40 50 BF 0F FE */ rlwimi r31, r5, 1, 0x1f, 0x1f /* 801D11E4 001CCE44 40 82 00 3C */ bne lbl_801D1220 /* 801D11E8 001CCE48 2C 1F 00 02 */ cmpwi r31, 2 /* 801D11EC 001CCE4C 41 82 00 24 */ beq lbl_801D1210 /* 801D11F0 001CCE50 40 80 00 10 */ bge lbl_801D1200 /* 801D11F4 001CCE54 2C 1F 00 00 */ cmpwi r31, 0 /* 801D11F8 001CCE58 40 80 01 BC */ bge lbl_801D13B4 /* 801D11FC 001CCE5C 48 00 00 24 */ b lbl_801D1220 lbl_801D1200: /* 801D1200 001CCE60 2C 1F 00 04 */ cmpwi r31, 4 /* 801D1204 001CCE64 40 80 00 1C */ bge lbl_801D1220 /* 801D1208 001CCE68 48 00 00 10 */ b lbl_801D1218 /* 801D120C 001CCE6C 48 00 01 A8 */ b lbl_801D13B4 lbl_801D1210: /* 801D1210 001CCE70 C8 22 92 A0 */ lfd f1, lbl_806418A0-_SDA2_BASE_(r2) /* 801D1214 001CCE74 48 00 01 A0 */ b lbl_801D13B4 lbl_801D1218: /* 801D1218 001CCE78 C8 22 92 A8 */ lfd f1, lbl_806418A8-_SDA2_BASE_(r2) /* 801D121C 001CCE7C 48 00 01 98 */ b lbl_801D13B4 lbl_801D1220: /* 801D1220 001CCE80 7C C0 43 79 */ or. r0, r6, r8 /* 801D1224 001CCE84 40 82 00 1C */ bne lbl_801D1240 /* 801D1228 001CCE88 2C 05 00 00 */ cmpwi r5, 0 /* 801D122C 001CCE8C 40 80 00 0C */ bge lbl_801D1238 /* 801D1230 001CCE90 C8 22 92 B0 */ lfd f1, lbl_806418B0-_SDA2_BASE_(r2) /* 801D1234 001CCE94 48 00 01 80 */ b lbl_801D13B4 lbl_801D1238: /* 801D1238 001CCE98 C8 22 92 B8 */ lfd f1, lbl_806418B8-_SDA2_BASE_(r2) /* 801D123C 001CCE9C 48 00 01 78 */ b lbl_801D13B4 lbl_801D1240: /* 801D1240 001CCEA0 3C 06 80 10 */ addis r0, r6, 0x8010 /* 801D1244 001CCEA4 28 00 00 00 */ cmplwi r0, 0 /* 801D1248 001CCEA8 40 82 00 A0 */ bne lbl_801D12E8 /* 801D124C 001CCEAC 3C 07 80 10 */ addis r0, r7, 0x8010 /* 801D1250 001CCEB0 28 00 00 00 */ cmplwi r0, 0 /* 801D1254 001CCEB4 40 82 00 4C */ bne lbl_801D12A0 /* 801D1258 001CCEB8 2C 1F 00 02 */ cmpwi r31, 2 /* 801D125C 001CCEBC 41 82 00 34 */ beq lbl_801D1290 /* 801D1260 001CCEC0 40 80 00 14 */ bge lbl_801D1274 /* 801D1264 001CCEC4 2C 1F 00 00 */ cmpwi r31, 0 /* 801D1268 001CCEC8 41 82 00 18 */ beq lbl_801D1280 /* 801D126C 001CCECC 40 80 00 1C */ bge lbl_801D1288 /* 801D1270 001CCED0 48 00 00 78 */ b lbl_801D12E8 lbl_801D1274: /* 801D1274 001CCED4 2C 1F 00 04 */ cmpwi r31, 4 /* 801D1278 001CCED8 40 80 00 70 */ bge lbl_801D12E8 /* 801D127C 001CCEDC 48 00 00 1C */ b lbl_801D1298 lbl_801D1280: /* 801D1280 001CCEE0 C8 22 92 C0 */ lfd f1, lbl_806418C0-_SDA2_BASE_(r2) /* 801D1284 001CCEE4 48 00 01 30 */ b lbl_801D13B4 lbl_801D1288: /* 801D1288 001CCEE8 C8 22 92 C8 */ lfd f1, lbl_806418C8-_SDA2_BASE_(r2) /* 801D128C 001CCEEC 48 00 01 28 */ b lbl_801D13B4 lbl_801D1290: /* 801D1290 001CCEF0 C8 22 92 D0 */ lfd f1, lbl_806418D0-_SDA2_BASE_(r2) /* 801D1294 001CCEF4 48 00 01 20 */ b lbl_801D13B4 lbl_801D1298: /* 801D1298 001CCEF8 C8 22 92 D8 */ lfd f1, lbl_806418D8-_SDA2_BASE_(r2) /* 801D129C 001CCEFC 48 00 01 18 */ b lbl_801D13B4 lbl_801D12A0: /* 801D12A0 001CCF00 2C 1F 00 02 */ cmpwi r31, 2 /* 801D12A4 001CCF04 41 82 00 34 */ beq lbl_801D12D8 /* 801D12A8 001CCF08 40 80 00 14 */ bge lbl_801D12BC /* 801D12AC 001CCF0C 2C 1F 00 00 */ cmpwi r31, 0 /* 801D12B0 001CCF10 41 82 00 18 */ beq lbl_801D12C8 /* 801D12B4 001CCF14 40 80 00 1C */ bge lbl_801D12D0 /* 801D12B8 001CCF18 48 00 00 30 */ b lbl_801D12E8 lbl_801D12BC: /* 801D12BC 001CCF1C 2C 1F 00 04 */ cmpwi r31, 4 /* 801D12C0 001CCF20 40 80 00 28 */ bge lbl_801D12E8 /* 801D12C4 001CCF24 48 00 00 1C */ b lbl_801D12E0 lbl_801D12C8: /* 801D12C8 001CCF28 C8 22 92 E0 */ lfd f1, lbl_806418E0-_SDA2_BASE_(r2) /* 801D12CC 001CCF2C 48 00 00 E8 */ b lbl_801D13B4 lbl_801D12D0: /* 801D12D0 001CCF30 C8 22 92 E8 */ lfd f1, lbl_806418E8-_SDA2_BASE_(r2) /* 801D12D4 001CCF34 48 00 00 E0 */ b lbl_801D13B4 lbl_801D12D8: /* 801D12D8 001CCF38 C8 22 92 A0 */ lfd f1, lbl_806418A0-_SDA2_BASE_(r2) /* 801D12DC 001CCF3C 48 00 00 D8 */ b lbl_801D13B4 lbl_801D12E0: /* 801D12E0 001CCF40 C8 22 92 A8 */ lfd f1, lbl_806418A8-_SDA2_BASE_(r2) /* 801D12E4 001CCF44 48 00 00 D0 */ b lbl_801D13B4 lbl_801D12E8: /* 801D12E8 001CCF48 3C 07 80 10 */ addis r0, r7, 0x8010 /* 801D12EC 001CCF4C 28 00 00 00 */ cmplwi r0, 0 /* 801D12F0 001CCF50 40 82 00 1C */ bne lbl_801D130C /* 801D12F4 001CCF54 2C 05 00 00 */ cmpwi r5, 0 /* 801D12F8 001CCF58 40 80 00 0C */ bge lbl_801D1304 /* 801D12FC 001CCF5C C8 22 92 B0 */ lfd f1, lbl_806418B0-_SDA2_BASE_(r2) /* 801D1300 001CCF60 48 00 00 B4 */ b lbl_801D13B4 lbl_801D1304: /* 801D1304 001CCF64 C8 22 92 B8 */ lfd f1, lbl_806418B8-_SDA2_BASE_(r2) /* 801D1308 001CCF68 48 00 00 AC */ b lbl_801D13B4 lbl_801D130C: /* 801D130C 001CCF6C 7C 06 38 50 */ subf r0, r6, r7 /* 801D1310 001CCF70 7C 00 A6 70 */ srawi r0, r0, 0x14 /* 801D1314 001CCF74 2C 00 00 3C */ cmpwi r0, 0x3c /* 801D1318 001CCF78 40 81 00 10 */ ble lbl_801D1328 /* 801D131C 001CCF7C C8 22 92 B8 */ lfd f1, lbl_806418B8-_SDA2_BASE_(r2) /* 801D1320 001CCF80 D8 21 00 18 */ stfd f1, 0x18(r1) /* 801D1324 001CCF84 48 00 00 30 */ b lbl_801D1354 lbl_801D1328: /* 801D1328 001CCF88 2C 04 00 00 */ cmpwi r4, 0 /* 801D132C 001CCF8C 40 80 00 18 */ bge lbl_801D1344 /* 801D1330 001CCF90 2C 00 FF C4 */ cmpwi r0, -60 /* 801D1334 001CCF94 40 80 00 10 */ bge lbl_801D1344 /* 801D1338 001CCF98 C8 22 92 E0 */ lfd f1, lbl_806418E0-_SDA2_BASE_(r2) /* 801D133C 001CCF9C D8 21 00 18 */ stfd f1, 0x18(r1) /* 801D1340 001CCFA0 48 00 00 14 */ b lbl_801D1354 lbl_801D1344: /* 801D1344 001CCFA4 FC 01 10 24 */ fdiv f0, f1, f2 /* 801D1348 001CCFA8 FC 20 02 10 */ fabs f1, f0 /* 801D134C 001CCFAC 48 00 2A C1 */ bl atan /* 801D1350 001CCFB0 D8 21 00 18 */ stfd f1, 0x18(r1) lbl_801D1354: /* 801D1354 001CCFB4 2C 1F 00 01 */ cmpwi r31, 1 /* 801D1358 001CCFB8 41 82 00 24 */ beq lbl_801D137C /* 801D135C 001CCFBC 40 80 00 10 */ bge lbl_801D136C /* 801D1360 001CCFC0 2C 1F 00 00 */ cmpwi r31, 0 /* 801D1364 001CCFC4 40 80 00 50 */ bge lbl_801D13B4 /* 801D1368 001CCFC8 48 00 00 3C */ b lbl_801D13A4 lbl_801D136C: /* 801D136C 001CCFCC 2C 1F 00 03 */ cmpwi r31, 3 /* 801D1370 001CCFD0 40 80 00 34 */ bge lbl_801D13A4 /* 801D1374 001CCFD4 48 00 00 1C */ b lbl_801D1390 /* 801D1378 001CCFD8 48 00 00 3C */ b lbl_801D13B4 lbl_801D137C: /* 801D137C 001CCFDC 80 01 00 18 */ lwz r0, 0x18(r1) /* 801D1380 001CCFE0 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801D1384 001CCFE4 90 01 00 18 */ stw r0, 0x18(r1) /* 801D1388 001CCFE8 C8 21 00 18 */ lfd f1, 0x18(r1) /* 801D138C 001CCFEC 48 00 00 28 */ b lbl_801D13B4 lbl_801D1390: /* 801D1390 001CCFF0 C8 42 92 F0 */ lfd f2, lbl_806418F0-_SDA2_BASE_(r2) /* 801D1394 001CCFF4 C8 02 92 A0 */ lfd f0, lbl_806418A0-_SDA2_BASE_(r2) /* 801D1398 001CCFF8 FC 21 10 28 */ fsub f1, f1, f2 /* 801D139C 001CCFFC FC 20 08 28 */ fsub f1, f0, f1 /* 801D13A0 001CD000 48 00 00 14 */ b lbl_801D13B4 lbl_801D13A4: /* 801D13A4 001CD004 C8 42 92 F0 */ lfd f2, lbl_806418F0-_SDA2_BASE_(r2) /* 801D13A8 001CD008 C8 02 92 A0 */ lfd f0, lbl_806418A0-_SDA2_BASE_(r2) /* 801D13AC 001CD00C FC 21 10 28 */ fsub f1, f1, f2 /* 801D13B0 001CD010 FC 21 00 28 */ fsub f1, f1, f0 lbl_801D13B4: /* 801D13B4 001CD014 80 01 00 34 */ lwz r0, 0x34(r1) /* 801D13B8 001CD018 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 801D13BC 001CD01C 7C 08 03 A6 */ mtlr r0 /* 801D13C0 001CD020 38 21 00 30 */ addi r1, r1, 0x30 /* 801D13C4 001CD024 4E 80 00 20 */ blr