From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7542 invoked by alias); 8 Aug 2012 14:56:48 -0000 Received: (qmail 7526 invoked by uid 22791); 8 Aug 2012 14:56:47 -0000 X-SWARE-Spam-Status: No, hits=-5.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-gg0-f169.google.com (HELO mail-gg0-f169.google.com) (209.85.161.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 08 Aug 2012 14:56:12 +0000 Received: by ggnf4 with SMTP id f4so968092ggn.0 for ; Wed, 08 Aug 2012 07:56:11 -0700 (PDT) Received: by 10.42.85.69 with SMTP id p5mr2580803icl.24.1344437771661; Wed, 08 Aug 2012 07:56:11 -0700 (PDT) Received: from anchor.twiddle.home.com ([173.160.232.49]) by mx.google.com with ESMTPS id ai6sm5255913igc.0.2012.08.08.07.56.10 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 08 Aug 2012 07:56:11 -0700 (PDT) From: Richard Henderson To: libc-ports@sourceware.org Subject: [PATCH 2/3] alpha: Tidy up ieee_get/set_fp_control syscalls Date: Wed, 08 Aug 2012 14:56:00 -0000 Message-Id: <1344437762-3593-3-git-send-email-rth@twiddle.net> In-Reply-To: <1344437762-3593-1-git-send-email-rth@twiddle.net> References: <1344437762-3593-1-git-send-email-rth@twiddle.net> X-IsSubscribed: yes Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2012-08/txt/msg00048.txt.bz2 --- ports/ChangeLog.alpha | 5 +++ .../unix/sysv/linux/alpha/ieee_get_fp_control.S | 38 +++++++------------ .../unix/sysv/linux/alpha/ieee_set_fp_control.S | 38 ++++++------------- 3 files changed, 31 insertions(+), 50 deletions(-) diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha index 282900a..719fc6a 100644 --- a/ports/ChangeLog.alpha +++ b/ports/ChangeLog.alpha @@ -1,5 +1,10 @@ 2012-08-08 Richard Henderson + * 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 diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S index ec24297..74ad499 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S +++ b/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S @@ -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 , 1995. @@ -22,39 +22,29 @@ .text -LEAF(__ieee_get_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) +ENTRY(__ieee_get_fp_control) + cfi_startproc + PSEUDO_PROLOGUE + 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) - ret + cfi_adjust_cfa_offset(-16) -$error: - lda sp, 16(sp) - SYSCALL_ERROR_HANDLER + bne a3, SYSCALL_ERROR_LABEL + + mov t0, v0 + ret - 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) diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S index 1d42524..f022b42 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S +++ b/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S @@ -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 , 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) +ENTRY(__ieee_set_fp_control) + cfi_startproc + PSEUDO_PROLOGUE + lda sp, -16(sp) - .prologue 1 -#endif + 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) - ret + cfi_adjust_cfa_offset(-16) -$error: - lda sp, 16(sp) - SYSCALL_ERROR_HANDLER + bne a3, SYSCALL_ERROR_LABEL + ret - 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) -- 1.7.7.6