.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __kernel_tan __kernel_tan: /* 801D3BB4 001CF814 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801D3BB8 001CF818 DB E1 00 40 */ stfd f31, 0x40(r1) /* 801D3BBC 001CF81C F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0 /* 801D3BC0 001CF820 DB C1 00 30 */ stfd f30, 0x30(r1) /* 801D3BC4 001CF824 F3 C1 00 38 */ psq_st f30, 56(r1), 0, qr0 /* 801D3BC8 001CF828 D8 21 00 08 */ stfd f1, 8(r1) /* 801D3BCC 001CF82C 3C 00 3E 30 */ lis r0, 0x3e30 /* 801D3BD0 001CF830 81 01 00 08 */ lwz r8, 8(r1) /* 801D3BD4 001CF834 55 07 00 7E */ clrlwi r7, r8, 1 /* 801D3BD8 001CF838 7C 07 00 00 */ cmpw r7, r0 /* 801D3BDC 001CF83C 40 80 00 54 */ bge lbl_801D3C30 /* 801D3BE0 001CF840 FC 00 08 1E */ fctiwz f0, f1 /* 801D3BE4 001CF844 D8 01 00 20 */ stfd f0, 0x20(r1) /* 801D3BE8 001CF848 80 01 00 24 */ lwz r0, 0x24(r1) /* 801D3BEC 001CF84C 2C 00 00 00 */ cmpwi r0, 0 /* 801D3BF0 001CF850 40 82 00 40 */ bne lbl_801D3C30 /* 801D3BF4 001CF854 38 83 00 01 */ addi r4, r3, 1 /* 801D3BF8 001CF858 80 01 00 0C */ lwz r0, 0xc(r1) /* 801D3BFC 001CF85C 7C 84 3B 78 */ or r4, r4, r7 /* 801D3C00 001CF860 7C 80 03 79 */ or. r0, r4, r0 /* 801D3C04 001CF864 40 82 00 14 */ bne lbl_801D3C18 /* 801D3C08 001CF868 FC 20 0A 10 */ fabs f1, f1 /* 801D3C0C 001CF86C C8 02 95 20 */ lfd f0, lbl_80641B20-_SDA2_BASE_(r2) /* 801D3C10 001CF870 FC 20 08 24 */ fdiv f1, f0, f1 /* 801D3C14 001CF874 48 00 01 E0 */ b lbl_801D3DF4 lbl_801D3C18: /* 801D3C18 001CF878 2C 03 00 01 */ cmpwi r3, 1 /* 801D3C1C 001CF87C 40 82 00 08 */ bne lbl_801D3C24 /* 801D3C20 001CF880 48 00 01 D4 */ b lbl_801D3DF4 lbl_801D3C24: /* 801D3C24 001CF884 C8 02 95 28 */ lfd f0, lbl_80641B28-_SDA2_BASE_(r2) /* 801D3C28 001CF888 FC 20 08 24 */ fdiv f1, f0, f1 /* 801D3C2C 001CF88C 48 00 01 C8 */ b lbl_801D3DF4 lbl_801D3C30: /* 801D3C30 001CF890 3C 80 3F E6 */ lis r4, 0x3FE59428@ha /* 801D3C34 001CF894 38 04 94 28 */ addi r0, r4, 0x3FE59428@l /* 801D3C38 001CF898 7C 07 00 00 */ cmpw r7, r0 /* 801D3C3C 001CF89C 41 80 00 30 */ blt lbl_801D3C6C /* 801D3C40 001CF8A0 2C 08 00 00 */ cmpwi r8, 0 /* 801D3C44 001CF8A4 40 80 00 0C */ bge lbl_801D3C50 /* 801D3C48 001CF8A8 FC 20 08 50 */ fneg f1, f1 /* 801D3C4C 001CF8AC FC 40 10 50 */ fneg f2, f2 lbl_801D3C50: /* 801D3C50 001CF8B0 C8 62 95 30 */ lfd f3, lbl_80641B30-_SDA2_BASE_(r2) /* 801D3C54 001CF8B4 C8 02 95 38 */ lfd f0, lbl_80641B38-_SDA2_BASE_(r2) /* 801D3C58 001CF8B8 FC 23 08 28 */ fsub f1, f3, f1 /* 801D3C5C 001CF8BC FC 00 10 28 */ fsub f0, f0, f2 /* 801D3C60 001CF8C0 C8 42 95 40 */ lfd f2, lbl_80641B40-_SDA2_BASE_(r2) /* 801D3C64 001CF8C4 FC 21 00 2A */ fadd f1, f1, f0 /* 801D3C68 001CF8C8 D8 21 00 08 */ stfd f1, 8(r1) lbl_801D3C6C: /* 801D3C6C 001CF8CC FC 01 00 72 */ fmul f0, f1, f1 /* 801D3C70 001CF8D0 3C C0 80 40 */ lis r6, lbl_803FD540@ha /* 801D3C74 001CF8D4 38 A6 D5 40 */ addi r5, r6, lbl_803FD540@l /* 801D3C78 001CF8D8 3C 80 3F E6 */ lis r4, 0x3FE59428@ha /* 801D3C7C 001CF8DC 38 04 94 28 */ addi r0, r4, 0x3FE59428@l /* 801D3C80 001CF8E0 C8 A5 00 60 */ lfd f5, 0x60(r5) /* 801D3C84 001CF8E4 FC 60 00 32 */ fmul f3, f0, f0 /* 801D3C88 001CF8E8 C9 05 00 58 */ lfd f8, 0x58(r5) /* 801D3C8C 001CF8EC C8 C5 00 50 */ lfd f6, 0x50(r5) /* 801D3C90 001CF8F0 7C 07 00 00 */ cmpw r7, r0 /* 801D3C94 001CF8F4 C9 45 00 48 */ lfd f10, 0x48(r5) /* 801D3C98 001CF8F8 FC 80 00 72 */ fmul f4, f0, f1 /* 801D3C9C 001CF8FC FC E3 01 72 */ fmul f7, f3, f5 /* 801D3CA0 001CF900 C8 A6 D5 40 */ lfd f5, -0x2ac0(r6) /* 801D3CA4 001CF904 C9 25 00 40 */ lfd f9, 0x40(r5) /* 801D3CA8 001CF908 FD 63 02 32 */ fmul f11, f3, f8 /* 801D3CAC 001CF90C CB E5 00 38 */ lfd f31, 0x38(r5) /* 801D3CB0 001CF910 C9 05 00 30 */ lfd f8, 0x30(r5) /* 801D3CB4 001CF914 FC C6 38 2A */ fadd f6, f6, f7 /* 801D3CB8 001CF918 C9 A5 00 28 */ lfd f13, 0x28(r5) /* 801D3CBC 001CF91C FF CA 58 2A */ fadd f30, f10, f11 /* 801D3CC0 001CF920 C8 E5 00 20 */ lfd f7, 0x20(r5) /* 801D3CC4 001CF924 FC A5 01 32 */ fmul f5, f5, f4 /* 801D3CC8 001CF928 C9 85 00 18 */ lfd f12, 0x18(r5) /* 801D3CCC 001CF92C FD 43 01 B2 */ fmul f10, f3, f6 /* 801D3CD0 001CF930 C8 C5 00 10 */ lfd f6, 0x10(r5) /* 801D3CD4 001CF934 C9 65 00 08 */ lfd f11, 8(r5) /* 801D3CD8 001CF938 FF C3 07 B2 */ fmul f30, f3, f30 /* 801D3CDC 001CF93C D8 01 00 18 */ stfd f0, 0x18(r1) /* 801D3CE0 001CF940 FD 29 50 2A */ fadd f9, f9, f10 /* 801D3CE4 001CF944 FD 5F F0 2A */ fadd f10, f31, f30 /* 801D3CE8 001CF948 FD 23 02 72 */ fmul f9, f3, f9 /* 801D3CEC 001CF94C FD 43 02 B2 */ fmul f10, f3, f10 /* 801D3CF0 001CF950 FD 08 48 2A */ fadd f8, f8, f9 /* 801D3CF4 001CF954 FD 2D 50 2A */ fadd f9, f13, f10 /* 801D3CF8 001CF958 FD 03 02 32 */ fmul f8, f3, f8 /* 801D3CFC 001CF95C FD 23 02 72 */ fmul f9, f3, f9 /* 801D3D00 001CF960 FC E7 40 2A */ fadd f7, f7, f8 /* 801D3D04 001CF964 FD 0C 48 2A */ fadd f8, f12, f9 /* 801D3D08 001CF968 FC E3 01 F2 */ fmul f7, f3, f7 /* 801D3D0C 001CF96C FD 03 02 32 */ fmul f8, f3, f8 /* 801D3D10 001CF970 FC 66 38 2A */ fadd f3, f6, f7 /* 801D3D14 001CF974 FC CB 40 2A */ fadd f6, f11, f8 /* 801D3D18 001CF978 FC 60 00 F2 */ fmul f3, f0, f3 /* 801D3D1C 001CF97C FC 66 18 2A */ fadd f3, f6, f3 /* 801D3D20 001CF980 FC 64 00 F2 */ fmul f3, f4, f3 /* 801D3D24 001CF984 FC 62 18 2A */ fadd f3, f2, f3 /* 801D3D28 001CF988 FC 00 00 F2 */ fmul f0, f0, f3 /* 801D3D2C 001CF98C FC C2 00 2A */ fadd f6, f2, f0 /* 801D3D30 001CF990 FC C6 28 2A */ fadd f6, f6, f5 /* 801D3D34 001CF994 FC 81 30 2A */ fadd f4, f1, f6 /* 801D3D38 001CF998 41 80 00 64 */ blt lbl_801D3D9C /* 801D3D3C 001CF99C 3C 80 43 30 */ lis r4, 0x4330 /* 801D3D40 001CF9A0 6C 60 80 00 */ xoris r0, r3, 0x8000 /* 801D3D44 001CF9A4 90 01 00 24 */ stw r0, 0x24(r1) /* 801D3D48 001CF9A8 55 00 17 BC */ rlwinm r0, r8, 2, 0x1e, 0x1e /* 801D3D4C 001CF9AC 20 00 00 01 */ subfic r0, r0, 1 /* 801D3D50 001CF9B0 C8 A2 95 50 */ lfd f5, lbl_80641B50-_SDA2_BASE_(r2) /* 801D3D54 001CF9B4 90 81 00 20 */ stw r4, 0x20(r1) /* 801D3D58 001CF9B8 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801D3D5C 001CF9BC FC 64 01 32 */ fmul f3, f4, f4 /* 801D3D60 001CF9C0 C8 02 95 48 */ lfd f0, lbl_80641B48-_SDA2_BASE_(r2) /* 801D3D64 001CF9C4 C8 41 00 20 */ lfd f2, 0x20(r1) /* 801D3D68 001CF9C8 90 01 00 2C */ stw r0, 0x2c(r1) /* 801D3D6C 001CF9CC FC E2 28 28 */ fsub f7, f2, f5 /* 801D3D70 001CF9D0 90 81 00 28 */ stw r4, 0x28(r1) /* 801D3D74 001CF9D4 FC 44 38 2A */ fadd f2, f4, f7 /* 801D3D78 001CF9D8 C8 81 00 28 */ lfd f4, 0x28(r1) /* 801D3D7C 001CF9DC FC 84 28 28 */ fsub f4, f4, f5 /* 801D3D80 001CF9E0 FC 43 10 24 */ fdiv f2, f3, f2 /* 801D3D84 001CF9E4 FC 42 30 28 */ fsub f2, f2, f6 /* 801D3D88 001CF9E8 FC 21 10 28 */ fsub f1, f1, f2 /* 801D3D8C 001CF9EC FC 00 00 72 */ fmul f0, f0, f1 /* 801D3D90 001CF9F0 FC 07 00 28 */ fsub f0, f7, f0 /* 801D3D94 001CF9F4 FC 24 00 32 */ fmul f1, f4, f0 /* 801D3D98 001CF9F8 48 00 00 5C */ b lbl_801D3DF4 lbl_801D3D9C: /* 801D3D9C 001CF9FC 2C 03 00 01 */ cmpwi r3, 1 /* 801D3DA0 001CFA00 40 82 00 0C */ bne lbl_801D3DAC /* 801D3DA4 001CFA04 FC 20 20 90 */ fmr f1, f4 /* 801D3DA8 001CFA08 48 00 00 4C */ b lbl_801D3DF4 lbl_801D3DAC: /* 801D3DAC 001CFA0C C8 02 95 28 */ lfd f0, lbl_80641B28-_SDA2_BASE_(r2) /* 801D3DB0 001CFA10 38 00 00 00 */ li r0, 0 /* 801D3DB4 001CFA14 D8 81 00 18 */ stfd f4, 0x18(r1) /* 801D3DB8 001CFA18 FC A0 20 24 */ fdiv f5, f0, f4 /* 801D3DBC 001CFA1C C8 42 95 20 */ lfd f2, lbl_80641B20-_SDA2_BASE_(r2) /* 801D3DC0 001CFA20 90 01 00 1C */ stw r0, 0x1c(r1) /* 801D3DC4 001CFA24 C8 81 00 18 */ lfd f4, 0x18(r1) /* 801D3DC8 001CFA28 D8 A1 00 10 */ stfd f5, 0x10(r1) /* 801D3DCC 001CFA2C FC 04 08 28 */ fsub f0, f4, f1 /* 801D3DD0 001CFA30 90 01 00 14 */ stw r0, 0x14(r1) /* 801D3DD4 001CFA34 FC 06 00 28 */ fsub f0, f6, f0 /* 801D3DD8 001CFA38 C8 61 00 10 */ lfd f3, 0x10(r1) /* 801D3DDC 001CFA3C FC 23 01 32 */ fmul f1, f3, f4 /* 801D3DE0 001CFA40 FC 03 00 32 */ fmul f0, f3, f0 /* 801D3DE4 001CFA44 FC 22 08 2A */ fadd f1, f2, f1 /* 801D3DE8 001CFA48 FC 01 00 2A */ fadd f0, f1, f0 /* 801D3DEC 001CFA4C FC 05 00 32 */ fmul f0, f5, f0 /* 801D3DF0 001CFA50 FC 23 00 2A */ fadd f1, f3, f0 lbl_801D3DF4: /* 801D3DF4 001CFA54 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0 /* 801D3DF8 001CFA58 CB E1 00 40 */ lfd f31, 0x40(r1) /* 801D3DFC 001CFA5C E3 C1 00 38 */ psq_l f30, 56(r1), 0, qr0 /* 801D3E00 001CFA60 CB C1 00 30 */ lfd f30, 0x30(r1) /* 801D3E04 001CFA64 38 21 00 50 */ addi r1, r1, 0x50 /* 801D3E08 001CFA68 4E 80 00 20 */ blr