.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __ieee754_acos __ieee754_acos: /* 801D0BFC 001CC85C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 801D0C00 001CC860 7C 08 02 A6 */ mflr r0 /* 801D0C04 001CC864 90 01 00 44 */ stw r0, 0x44(r1) /* 801D0C08 001CC868 DB E1 00 30 */ stfd f31, 0x30(r1) /* 801D0C0C 001CC86C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 /* 801D0C10 001CC870 DB C1 00 20 */ stfd f30, 0x20(r1) /* 801D0C14 001CC874 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0 /* 801D0C18 001CC878 D8 21 00 08 */ stfd f1, 8(r1) /* 801D0C1C 001CC87C 3C 00 3F F0 */ lis r0, 0x3ff0 /* 801D0C20 001CC880 80 81 00 08 */ lwz r4, 8(r1) /* 801D0C24 001CC884 54 83 00 7E */ clrlwi r3, r4, 1 /* 801D0C28 001CC888 7C 03 00 00 */ cmpw r3, r0 /* 801D0C2C 001CC88C 41 80 00 38 */ blt lbl_801D0C64 /* 801D0C30 001CC890 80 01 00 0C */ lwz r0, 0xc(r1) /* 801D0C34 001CC894 3C 63 C0 10 */ addis r3, r3, 0xc010 /* 801D0C38 001CC898 7C 60 03 79 */ or. r0, r3, r0 /* 801D0C3C 001CC89C 40 82 00 1C */ bne lbl_801D0C58 /* 801D0C40 001CC8A0 2C 04 00 00 */ cmpwi r4, 0 /* 801D0C44 001CC8A4 40 81 00 0C */ ble lbl_801D0C50 /* 801D0C48 001CC8A8 C8 22 91 90 */ lfd f1, lbl_80641790-_SDA2_BASE_(r2) /* 801D0C4C 001CC8AC 48 00 02 54 */ b lbl_801D0EA0 lbl_801D0C50: /* 801D0C50 001CC8B0 C8 22 91 98 */ lfd f1, lbl_80641798-_SDA2_BASE_(r2) /* 801D0C54 001CC8B4 48 00 02 4C */ b lbl_801D0EA0 lbl_801D0C58: /* 801D0C58 001CC8B8 3C 60 80 64 */ lis r3, lbl_8063D6B8@ha /* 801D0C5C 001CC8BC C0 23 D6 B8 */ lfs f1, lbl_8063D6B8@l(r3) /* 801D0C60 001CC8C0 48 00 02 40 */ b lbl_801D0EA0 lbl_801D0C64: /* 801D0C64 001CC8C4 3C 00 3F E0 */ lis r0, 0x3fe0 /* 801D0C68 001CC8C8 7C 03 00 00 */ cmpw r3, r0 /* 801D0C6C 001CC8CC 40 80 00 B4 */ bge lbl_801D0D20 /* 801D0C70 001CC8D0 3C 00 3C 60 */ lis r0, 0x3c60 /* 801D0C74 001CC8D4 7C 03 00 00 */ cmpw r3, r0 /* 801D0C78 001CC8D8 41 81 00 0C */ bgt lbl_801D0C84 /* 801D0C7C 001CC8DC C8 22 91 A0 */ lfd f1, lbl_806417A0-_SDA2_BASE_(r2) /* 801D0C80 001CC8E0 48 00 02 20 */ b lbl_801D0EA0 lbl_801D0C84: /* 801D0C84 001CC8E4 FD 81 00 72 */ fmul f12, f1, f1 /* 801D0C88 001CC8E8 C8 02 91 D0 */ lfd f0, lbl_806417D0-_SDA2_BASE_(r2) /* 801D0C8C 001CC8EC C8 42 91 F8 */ lfd f2, lbl_806417F8-_SDA2_BASE_(r2) /* 801D0C90 001CC8F0 C8 62 91 C8 */ lfd f3, lbl_806417C8-_SDA2_BASE_(r2) /* 801D0C94 001CC8F4 C9 42 91 C0 */ lfd f10, lbl_806417C0-_SDA2_BASE_(r2) /* 801D0C98 001CC8F8 FC 80 03 32 */ fmul f4, f0, f12 /* 801D0C9C 001CC8FC C8 02 91 F0 */ lfd f0, lbl_806417F0-_SDA2_BASE_(r2) /* 801D0CA0 001CC900 FC 42 03 32 */ fmul f2, f2, f12 /* 801D0CA4 001CC904 C8 A2 91 E8 */ lfd f5, lbl_806417E8-_SDA2_BASE_(r2) /* 801D0CA8 001CC908 C9 22 91 B8 */ lfd f9, lbl_806417B8-_SDA2_BASE_(r2) /* 801D0CAC 001CC90C FC 63 20 2A */ fadd f3, f3, f4 /* 801D0CB0 001CC910 C8 82 91 E0 */ lfd f4, lbl_806417E0-_SDA2_BASE_(r2) /* 801D0CB4 001CC914 FC 00 10 2A */ fadd f0, f0, f2 /* 801D0CB8 001CC918 FD 6C 00 F2 */ fmul f11, f12, f3 /* 801D0CBC 001CC91C C9 02 91 B0 */ lfd f8, lbl_806417B0-_SDA2_BASE_(r2) /* 801D0CC0 001CC920 C8 62 91 D8 */ lfd f3, lbl_806417D8-_SDA2_BASE_(r2) /* 801D0CC4 001CC924 FC CC 00 32 */ fmul f6, f12, f0 /* 801D0CC8 001CC928 C8 E2 91 A8 */ lfd f7, lbl_806417A8-_SDA2_BASE_(r2) /* 801D0CCC 001CC92C C8 42 92 00 */ lfd f2, lbl_80641800-_SDA2_BASE_(r2) /* 801D0CD0 001CC930 FD 4A 58 2A */ fadd f10, f10, f11 /* 801D0CD4 001CC934 C8 02 91 A0 */ lfd f0, lbl_806417A0-_SDA2_BASE_(r2) /* 801D0CD8 001CC938 FC A5 30 2A */ fadd f5, f5, f6 /* 801D0CDC 001CC93C FC CC 02 B2 */ fmul f6, f12, f10 /* 801D0CE0 001CC940 FC AC 01 72 */ fmul f5, f12, f5 /* 801D0CE4 001CC944 FC C9 30 2A */ fadd f6, f9, f6 /* 801D0CE8 001CC948 FC 84 28 2A */ fadd f4, f4, f5 /* 801D0CEC 001CC94C FC AC 01 B2 */ fmul f5, f12, f6 /* 801D0CF0 001CC950 FC 8C 01 32 */ fmul f4, f12, f4 /* 801D0CF4 001CC954 FC A8 28 2A */ fadd f5, f8, f5 /* 801D0CF8 001CC958 FC 83 20 2A */ fadd f4, f3, f4 /* 801D0CFC 001CC95C FC 6C 01 72 */ fmul f3, f12, f5 /* 801D0D00 001CC960 FC 67 18 2A */ fadd f3, f7, f3 /* 801D0D04 001CC964 FC 6C 00 F2 */ fmul f3, f12, f3 /* 801D0D08 001CC968 FC 63 20 24 */ fdiv f3, f3, f4 /* 801D0D0C 001CC96C FC 61 00 F2 */ fmul f3, f1, f3 /* 801D0D10 001CC970 FC 42 18 28 */ fsub f2, f2, f3 /* 801D0D14 001CC974 FC 21 10 28 */ fsub f1, f1, f2 /* 801D0D18 001CC978 FC 20 08 28 */ fsub f1, f0, f1 /* 801D0D1C 001CC97C 48 00 01 84 */ b lbl_801D0EA0 lbl_801D0D20: /* 801D0D20 001CC980 2C 04 00 00 */ cmpwi r4, 0 /* 801D0D24 001CC984 40 80 00 B4 */ bge lbl_801D0DD8 /* 801D0D28 001CC988 C9 62 91 D8 */ lfd f11, lbl_806417D8-_SDA2_BASE_(r2) /* 801D0D2C 001CC98C C8 02 92 08 */ lfd f0, lbl_80641808-_SDA2_BASE_(r2) /* 801D0D30 001CC990 FC 2B 08 2A */ fadd f1, f11, f1 /* 801D0D34 001CC994 C8 82 91 D0 */ lfd f4, lbl_806417D0-_SDA2_BASE_(r2) /* 801D0D38 001CC998 C9 22 91 C8 */ lfd f9, lbl_806417C8-_SDA2_BASE_(r2) /* 801D0D3C 001CC99C C8 62 91 F0 */ lfd f3, lbl_806417F0-_SDA2_BASE_(r2) /* 801D0D40 001CC9A0 FC 20 00 72 */ fmul f1, f0, f1 /* 801D0D44 001CC9A4 C8 02 91 F8 */ lfd f0, lbl_806417F8-_SDA2_BASE_(r2) /* 801D0D48 001CC9A8 C9 02 91 C0 */ lfd f8, lbl_806417C0-_SDA2_BASE_(r2) /* 801D0D4C 001CC9AC C8 42 91 E8 */ lfd f2, lbl_806417E8-_SDA2_BASE_(r2) /* 801D0D50 001CC9B0 C8 E2 91 B8 */ lfd f7, lbl_806417B8-_SDA2_BASE_(r2) /* 801D0D54 001CC9B4 FD 44 00 72 */ fmul f10, f4, f1 /* 801D0D58 001CC9B8 C8 C2 91 B0 */ lfd f6, lbl_806417B0-_SDA2_BASE_(r2) /* 801D0D5C 001CC9BC FC 80 00 72 */ fmul f4, f0, f1 /* 801D0D60 001CC9C0 C8 02 91 E0 */ lfd f0, lbl_806417E0-_SDA2_BASE_(r2) /* 801D0D64 001CC9C4 C8 A2 91 A8 */ lfd f5, lbl_806417A8-_SDA2_BASE_(r2) /* 801D0D68 001CC9C8 FD 29 50 2A */ fadd f9, f9, f10 /* 801D0D6C 001CC9CC FC 63 20 2A */ fadd f3, f3, f4 /* 801D0D70 001CC9D0 FC 81 02 72 */ fmul f4, f1, f9 /* 801D0D74 001CC9D4 FC 61 00 F2 */ fmul f3, f1, f3 /* 801D0D78 001CC9D8 FC 88 20 2A */ fadd f4, f8, f4 /* 801D0D7C 001CC9DC FC 42 18 2A */ fadd f2, f2, f3 /* 801D0D80 001CC9E0 FC 61 01 32 */ fmul f3, f1, f4 /* 801D0D84 001CC9E4 FC 41 00 B2 */ fmul f2, f1, f2 /* 801D0D88 001CC9E8 FC 67 18 2A */ fadd f3, f7, f3 /* 801D0D8C 001CC9EC FC 00 10 2A */ fadd f0, f0, f2 /* 801D0D90 001CC9F0 FC 41 00 F2 */ fmul f2, f1, f3 /* 801D0D94 001CC9F4 FC 01 00 32 */ fmul f0, f1, f0 /* 801D0D98 001CC9F8 FC 46 10 2A */ fadd f2, f6, f2 /* 801D0D9C 001CC9FC FF CB 00 2A */ fadd f30, f11, f0 /* 801D0DA0 001CCA00 FC 01 00 B2 */ fmul f0, f1, f2 /* 801D0DA4 001CCA04 FC 05 00 2A */ fadd f0, f5, f0 /* 801D0DA8 001CCA08 FF E1 00 32 */ fmul f31, f1, f0 /* 801D0DAC 001CCA0C 48 00 3A 89 */ bl sqrt /* 801D0DB0 001CCA10 FC 9F F0 24 */ fdiv f4, f31, f30 /* 801D0DB4 001CCA14 C8 62 92 00 */ lfd f3, lbl_80641800-_SDA2_BASE_(r2) /* 801D0DB8 001CCA18 C8 42 92 10 */ lfd f2, lbl_80641810-_SDA2_BASE_(r2) /* 801D0DBC 001CCA1C C8 02 91 98 */ lfd f0, lbl_80641798-_SDA2_BASE_(r2) /* 801D0DC0 001CCA20 FC 84 00 72 */ fmul f4, f4, f1 /* 801D0DC4 001CCA24 FC 64 18 28 */ fsub f3, f4, f3 /* 801D0DC8 001CCA28 FC 21 18 2A */ fadd f1, f1, f3 /* 801D0DCC 001CCA2C FC 22 00 72 */ fmul f1, f2, f1 /* 801D0DD0 001CCA30 FC 20 08 28 */ fsub f1, f0, f1 /* 801D0DD4 001CCA34 48 00 00 CC */ b lbl_801D0EA0 lbl_801D0DD8: /* 801D0DD8 001CCA38 C8 42 91 D8 */ lfd f2, lbl_806417D8-_SDA2_BASE_(r2) /* 801D0DDC 001CCA3C C8 02 92 08 */ lfd f0, lbl_80641808-_SDA2_BASE_(r2) /* 801D0DE0 001CCA40 FC 22 08 28 */ fsub f1, f2, f1 /* 801D0DE4 001CCA44 FF E0 00 72 */ fmul f31, f0, f1 /* 801D0DE8 001CCA48 FC 20 F8 90 */ fmr f1, f31 /* 801D0DEC 001CCA4C 48 00 3A 49 */ bl sqrt /* 801D0DF0 001CCA50 C8 42 91 D0 */ lfd f2, lbl_806417D0-_SDA2_BASE_(r2) /* 801D0DF4 001CCA54 38 00 00 00 */ li r0, 0 /* 801D0DF8 001CCA58 D8 21 00 10 */ stfd f1, 0x10(r1) /* 801D0DFC 001CCA5C FC 82 07 F2 */ fmul f4, f2, f31 /* 801D0E00 001CCA60 C8 02 91 F8 */ lfd f0, lbl_806417F8-_SDA2_BASE_(r2) /* 801D0E04 001CCA64 C8 62 91 C8 */ lfd f3, lbl_806417C8-_SDA2_BASE_(r2) /* 801D0E08 001CCA68 FC 40 07 F2 */ fmul f2, f0, f31 /* 801D0E0C 001CCA6C C8 02 91 F0 */ lfd f0, lbl_806417F0-_SDA2_BASE_(r2) /* 801D0E10 001CCA70 90 01 00 14 */ stw r0, 0x14(r1) /* 801D0E14 001CCA74 FC 63 20 2A */ fadd f3, f3, f4 /* 801D0E18 001CCA78 C9 61 00 10 */ lfd f11, 0x10(r1) /* 801D0E1C 001CCA7C FC 00 10 2A */ fadd f0, f0, f2 /* 801D0E20 001CCA80 FD 4B 02 F2 */ fmul f10, f11, f11 /* 801D0E24 001CCA84 C8 C2 91 C0 */ lfd f6, lbl_806417C0-_SDA2_BASE_(r2) /* 801D0E28 001CCA88 C9 02 91 B8 */ lfd f8, lbl_806417B8-_SDA2_BASE_(r2) /* 801D0E2C 001CCA8C FC 5F 00 F2 */ fmul f2, f31, f3 /* 801D0E30 001CCA90 C8 82 91 E8 */ lfd f4, lbl_806417E8-_SDA2_BASE_(r2) /* 801D0E34 001CCA94 C8 E2 91 B0 */ lfd f7, lbl_806417B0-_SDA2_BASE_(r2) /* 801D0E38 001CCA98 FC BF 00 32 */ fmul f5, f31, f0 /* 801D0E3C 001CCA9C C8 62 91 E0 */ lfd f3, lbl_806417E0-_SDA2_BASE_(r2) /* 801D0E40 001CCAA0 FC 06 10 2A */ fadd f0, f6, f2 /* 801D0E44 001CCAA4 C8 C2 91 A8 */ lfd f6, lbl_806417A8-_SDA2_BASE_(r2) /* 801D0E48 001CCAA8 C8 42 91 D8 */ lfd f2, lbl_806417D8-_SDA2_BASE_(r2) /* 801D0E4C 001CCAAC FD 5F 50 28 */ fsub f10, f31, f10 /* 801D0E50 001CCAB0 FD 3F 00 32 */ fmul f9, f31, f0 /* 801D0E54 001CCAB4 C8 02 92 10 */ lfd f0, lbl_80641810-_SDA2_BASE_(r2) /* 801D0E58 001CCAB8 FC 84 28 2A */ fadd f4, f4, f5 /* 801D0E5C 001CCABC FC A8 48 2A */ fadd f5, f8, f9 /* 801D0E60 001CCAC0 FC 9F 01 32 */ fmul f4, f31, f4 /* 801D0E64 001CCAC4 FC BF 01 72 */ fmul f5, f31, f5 /* 801D0E68 001CCAC8 FC 63 20 2A */ fadd f3, f3, f4 /* 801D0E6C 001CCACC FD 01 58 2A */ fadd f8, f1, f11 /* 801D0E70 001CCAD0 FC 87 28 2A */ fadd f4, f7, f5 /* 801D0E74 001CCAD4 FC 7F 00 F2 */ fmul f3, f31, f3 /* 801D0E78 001CCAD8 FC 9F 01 32 */ fmul f4, f31, f4 /* 801D0E7C 001CCADC FC 62 18 2A */ fadd f3, f2, f3 /* 801D0E80 001CCAE0 FC AA 40 24 */ fdiv f5, f10, f8 /* 801D0E84 001CCAE4 FC 46 20 2A */ fadd f2, f6, f4 /* 801D0E88 001CCAE8 FC 5F 00 B2 */ fmul f2, f31, f2 /* 801D0E8C 001CCAEC FC 42 18 24 */ fdiv f2, f2, f3 /* 801D0E90 001CCAF0 FC 22 00 72 */ fmul f1, f2, f1 /* 801D0E94 001CCAF4 FC 25 08 2A */ fadd f1, f5, f1 /* 801D0E98 001CCAF8 FC 2B 08 2A */ fadd f1, f11, f1 /* 801D0E9C 001CCAFC FC 20 00 72 */ fmul f1, f0, f1 lbl_801D0EA0: /* 801D0EA0 001CCB00 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 /* 801D0EA4 001CCB04 CB E1 00 30 */ lfd f31, 0x30(r1) /* 801D0EA8 001CCB08 E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0 /* 801D0EAC 001CCB0C 80 01 00 44 */ lwz r0, 0x44(r1) /* 801D0EB0 001CCB10 CB C1 00 20 */ lfd f30, 0x20(r1) /* 801D0EB4 001CCB14 7C 08 03 A6 */ mtlr r0 /* 801D0EB8 001CCB18 38 21 00 40 */ addi r1, r1, 0x40 /* 801D0EBC 001CCB1C 4E 80 00 20 */ blr