alpha: Tidy up ieee_get/set_fp_control syscalls

This commit is contained in:
Richard Henderson 2012-08-07 09:48:05 -07:00
parent 6360984bc3
commit 6ee732b7cd
3 changed files with 32 additions and 51 deletions

View File

@ -1,5 +1,10 @@
2012-08-08 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Use dwarf2
cfi markup for unwind. Adjust stack early so that the normal
syscall error path can be used.
* sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/kernel-features.h
(__ASSUME_STAT64_SYSCALL): Remove.
* sysdeps/unix/sysv/linux/alpha/fxstat.c: Remove test

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1996, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@azstarnet.com>, 1995.
@ -22,39 +22,29 @@
.text
LEAF(__ieee_get_fp_control, 16)
#ifdef PROF
ldgp gp, 0(pv)
ENTRY(__ieee_get_fp_control)
cfi_startproc
PSEUDO_PROLOGUE
lda sp, -16(sp)
.set noat
lda AT, _mcount
jsr AT, (AT), _mcount
.set at
.prologue 1
#elif defined PIC
lda sp, -16(sp)
.prologue 0
#else
ldgp gp, 0(pv)
lda sp, -16(sp)
.prologue 1
#endif
cfi_adjust_cfa_offset(16)
mov sp, a1
ldi a0, GSI_IEEE_FP_CONTROL
ldi v0, __NR_osf_getsysinfo
call_pal PAL_callsys
bne a3, $error
ldq v0, 0(sp)
ldq t0, 0(sp)
lda sp, 16(sp)
cfi_adjust_cfa_offset(-16)
bne a3, SYSCALL_ERROR_LABEL
mov t0, v0
ret
$error:
lda sp, 16(sp)
SYSCALL_ERROR_HANDLER
END(__ieee_get_fp_control)
PSEUDO_END(__ieee_get_fp_control)
cfi_endproc
libc_hidden_def(__ieee_get_fp_control)
weak_alias (__ieee_get_fp_control, ieee_get_fp_control)

View File

@ -1,5 +1,4 @@
/* Copyright (C) 1993, 1995, 1996, 1997, 2003, 2004
Free Software Foundation, Inc.
/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@azstarnet.com>, 1995.
@ -21,40 +20,27 @@
#include "kernel_sysinfo.h"
LEAF(__ieee_set_fp_control, 16)
#ifdef PROF
ldgp gp, 0(pv)
lda sp, -16(sp)
.set noat
lda AT, _mcount
jsr AT, (AT), _mcount
.set at
.prologue 1
#elif defined PIC
lda sp, -16(sp)
.prologue 0
#else
ldgp gp, 0(pv)
lda sp, -16(sp)
.prologue 1
#endif
ENTRY(__ieee_set_fp_control)
cfi_startproc
PSEUDO_PROLOGUE
lda sp, -16(sp)
cfi_adjust_cfa_offset(16)
ldi v0, __NR_osf_setsysinfo
stq a0, 0(sp)
mov sp, a1
ldi a0, SSI_IEEE_FP_CONTROL
ldi v0, __NR_osf_setsysinfo
call_pal PAL_callsys
bne a3, $error
lda sp, 16(sp)
cfi_adjust_cfa_offset(-16)
bne a3, SYSCALL_ERROR_LABEL
ret
$error:
lda sp, 16(sp)
SYSCALL_ERROR_HANDLER
END(__ieee_set_fp_control)
PSEUDO_END(__ieee_set_fp_control)
cfi_endproc
libc_hidden_def(__ieee_set_fp_control)
weak_alias (__ieee_set_fp_control, ieee_set_fp_control)