summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common_Embedded/Math/s_tan.s
blob: e7443cd779b18d11d4aa713e4669837da177bdb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global tan
tan:
/* 801D455C 001D01BC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801D4560 001D01C0  7C 08 02 A6 */	mflr r0
/* 801D4564 001D01C4  3C 60 3F E9 */	lis r3, 0x3FE921FB@ha
/* 801D4568 001D01C8  C8 42 95 D0 */	lfd f2, lbl_80641BD0-_SDA2_BASE_(r2)
/* 801D456C 001D01CC  D8 21 00 08 */	stfd f1, 8(r1)
/* 801D4570 001D01D0  90 01 00 24 */	stw r0, 0x24(r1)
/* 801D4574 001D01D4  38 03 21 FB */	addi r0, r3, 0x3FE921FB@l
/* 801D4578 001D01D8  80 61 00 08 */	lwz r3, 8(r1)
/* 801D457C 001D01DC  54 63 00 7E */	clrlwi r3, r3, 1
/* 801D4580 001D01E0  7C 03 00 00 */	cmpw r3, r0
/* 801D4584 001D01E4  41 81 00 10 */	bgt lbl_801D4594
/* 801D4588 001D01E8  38 60 00 01 */	li r3, 1
/* 801D458C 001D01EC  4B FF F6 29 */	bl __kernel_tan
/* 801D4590 001D01F0  48 00 00 34 */	b lbl_801D45C4
lbl_801D4594:
/* 801D4594 001D01F4  3C 00 7F F0 */	lis r0, 0x7ff0
/* 801D4598 001D01F8  7C 03 00 00 */	cmpw r3, r0
/* 801D459C 001D01FC  41 80 00 0C */	blt lbl_801D45A8
/* 801D45A0 001D0200  FC 21 08 28 */	fsub f1, f1, f1
/* 801D45A4 001D0204  48 00 00 20 */	b lbl_801D45C4
lbl_801D45A8:
/* 801D45A8 001D0208  38 61 00 10 */	addi r3, r1, 0x10
/* 801D45AC 001D020C  4B FF D9 95 */	bl __ieee754_rem_pio2
/* 801D45B0 001D0210  54 60 0F BC */	rlwinm r0, r3, 1, 0x1e, 0x1e
/* 801D45B4 001D0214  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 801D45B8 001D0218  C8 41 00 18 */	lfd f2, 0x18(r1)
/* 801D45BC 001D021C  20 60 00 01 */	subfic r3, r0, 1
/* 801D45C0 001D0220  4B FF F5 F5 */	bl __kernel_tan
lbl_801D45C4:
/* 801D45C4 001D0224  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801D45C8 001D0228  7C 08 03 A6 */	mtlr r0
/* 801D45CC 001D022C  38 21 00 20 */	addi r1, r1, 0x20
/* 801D45D0 001D0230  4E 80 00 20 */	blr