2002-11-07 Richard Henderson <rth@redhat.com>
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / linux / alpha / ieee_set_fp_control.S
1 /* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by David Mosberger <davidm@azstarnet.com>, 1995.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, write to the Free
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #include <sysdep.h>
21
22 #define SSI_IEEE_FP_CONTROL     14
23
24 LEAF(__ieee_set_fp_control, 16)
25 #ifdef PROF
26         ldgp    gp, 0(pv)
27         lda     sp, -16(sp)
28         .set noat
29         lda     AT, _mcount
30         jsr     AT, (AT), _mcount
31         .set at
32         .prologue 1
33 #else
34         lda     sp, -16(sp)
35         .prologue 0
36 #endif
37
38         stq     a0, 0(sp)
39         mov     sp, a1
40         ldi     a0, SSI_IEEE_FP_CONTROL
41         ldi     v0, __NR_osf_setsysinfo
42         call_pal PAL_callsys
43
44         bne     a3, $error
45
46         lda     sp, 16(sp)
47         ret
48
49 $error:
50 #ifndef PROF
51         br      gp, 1f
52 1:      ldgp    gp, 0(gp)
53 #endif
54         lda     sp, 16(sp)
55         SYSCALL_ERROR_HANDLER
56
57         END(__ieee_set_fp_control)
58
59 weak_alias (__ieee_set_fp_control, ieee_set_fp_control)