blob: 6b913992dc76ee49094e5502703cf08759c57d18 (
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
/*
* Written by J.T. Conklin <jtc@netbsd.org>.
* Fixed errno handling by Ulrich Drepper <drepper@redhat.com>.
* Public domain.
*/
#define __need_Emath
#include <bits/errno.h>
#include <machine/asm.h>
RCSID("$NetBSD: s_sin.S,v 1.5 1995/05/09 00:25:54 jtc Exp $")
ENTRY(__sin)
fldl 4(%esp)
fxam
fstsw %ax
movb $0x45, %dh
andb %ah, %dh
cmpb $0x05, %dh
je 3f
4: fsin
fnstsw %ax
testl $0x400,%eax
jnz 1f
ret
.align ALIGNARG(4)
1: fldpi
fadd %st(0)
fxch %st(1)
2: fprem1
fnstsw %ax
testl $0x400,%eax
jnz 2b
fstp %st(1)
fsin
ret
3:
#ifdef PIC
pushl %ebx
cfi_adjust_cfa_offset (4)
cfi_rel_offset (ebx, 0)
LOAD_PIC_REG (bx)
call __errno_location@PLT
movl $EDOM, (%eax)
popl %ebx
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
#else
call __errno_location@PLT
movl $EDOM, (%eax)
#endif
jmp 4b
END (__sin)
weak_alias (__sin, sin)
|