]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/alpha/udiv_qrnnd.S
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / alpha / udiv_qrnnd.S
index bafafd672e3e587d9806ec5220fbcb044730b2a1..b8b5071eeddcad6ffacc8ec77f54d6b5e67d1163 100644 (file)
@@ -1,35 +1,39 @@
  # Alpha 21064 __udiv_qrnnd
 
- # Copyright (C) 1992, 1994 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2015 Free Software Foundation, Inc.
 
  # This file is part of the GNU MP Library.
 
  # The GNU MP Library is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Library General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or (at your
+ # it under the terms of the GNU Lesser General Public License as published by
+ # the Free Software Foundation; either version 2.1 of the License, or (at your
  # option) any later version.
 
  # The GNU MP Library is distributed in the hope that it will be useful, but
  # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
+ # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
  # License for more details.
 
- # You should have received a copy of the GNU Library General Public License
- # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
- # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ # You should have received a copy of the GNU Lesser General Public License
+ # along with the GNU MP Library.  If not, see <http://www.gnu.org/licenses/>.
 
+#include <sysdep.h>
 
         .set noreorder
         .set noat
 
-.text
-        .align 3
-        .globl __udiv_qrnnd
-        .ent __udiv_qrnnd 0
-__udiv_qrnnd:
-__udiv_qrnnd..ng:
-        .frame $30,0,$26,0
+       .text
+
+LEAF(__udiv_qrnnd, 0)
+#ifdef PROF
+       ldgp    gp, 0(pv)
+       lda     AT, _mcount
+       jsr     AT, (AT), _mcount
+       .prologue 1
+#else
         .prologue 0
+#endif
+
 #define cnt    $2
 #define tmp    $3
 #define rem_ptr        $16
@@ -39,9 +43,9 @@ __udiv_qrnnd..ng:
 #define qb     $20
 
        ldiq    cnt,16
-       blt     d,Largedivisor
+       blt     d,$largedivisor
 
-Loop1: cmplt   n0,0,tmp
+$loop1:        cmplt   n0,0,tmp
        addq    n1,n1,n1
        bis     n1,tmp,n1
        addq    n0,n0,n0
@@ -74,12 +78,12 @@ Loop1:      cmplt   n0,0,tmp
        cmovne  qb,tmp,n1
        bis     n0,qb,n0
        subq    cnt,1,cnt
-       bgt     cnt,Loop1
+       bgt     cnt,$loop1
        stq     n1,0(rem_ptr)
        bis     $31,n0,$0
        ret     $31,($26),1
 
-Largedivisor:
+$largedivisor:
        and     n0,1,$4
 
        srl     n0,1,n0
@@ -91,7 +95,7 @@ Largedivisor:
        srl     d,1,$5
        addq    $5,$6,$5
 
-Loop2: cmplt   n0,0,tmp
+$loop2:        cmplt   n0,0,tmp
        addq    n1,n1,n1
        bis     n1,tmp,n1
        addq    n0,n0,n0
@@ -124,27 +128,30 @@ Loop2:    cmplt   n0,0,tmp
        cmovne  qb,tmp,n1
        bis     n0,qb,n0
        subq    cnt,1,cnt
-       bgt     cnt,Loop2
+       bgt     cnt,$loop2
 
        addq    n1,n1,n1
        addq    $4,n1,n1
-       bne     $6,Odd
+       bne     $6,$Odd
        stq     n1,0(rem_ptr)
        bis     $31,n0,$0
        ret     $31,($26),1
 
-Odd:
+$Odd:
        /* q' in n0. r' in n1 */
        addq    n1,n0,n1
+
        cmpult  n1,n0,tmp       # tmp := carry from addq
-       beq     tmp,LLp6
-       addq    n0,1,n0
-       subq    n1,d,n1
-LLp6:  cmpult  n1,d,tmp
-       bne     tmp,LLp7
-       addq    n0,1,n0
-       subq    n1,d,n1
-LLp7:
+       subq    n1,d,AT
+       addq    n0,tmp,n0
+       cmovne  tmp,AT,n1
+
+       cmpult  n1,d,tmp
+       addq    n0,1,AT
+       cmoveq  tmp,AT,n0
+       subq    n1,d,AT
+       cmoveq  tmp,AT,n1
+
        stq     n1,0(rem_ptr)
        bis     $31,n0,$0
        ret     $31,($26),1